2016-11-02 1 views
0

Разработка приложения для обмена сообщениями для Интернета и мобильных устройств с уведомлением в реальном времени. Поток Проект ..Как реализовать signalR для двух проектов, подключенных через бэкэнд-сервис

  • Backend - DataBaseOperations и услуги
  • Web
  • APi (для мобильных устройств)

Мне нужно отправить сообщения от сервера к пользователю, который может быть связанных с несколькими местоположениями (веб-и мобильным приложением).

Веб и API работают отдельно и имеют доступ к Backend. Пожалуйста, поделитесь мнениями о том, какой поток следует использовать для реализации singalR в моем проекте.

+0

Вы находитесь в сбалансированной по нагрузке среде? –

+0

да .. и я ищу любое решение, которое может работать в backend .. – NMathur

+0

Что значит «что делать?» Не совсем ясно, чего вы хотите. Вы только что описали проект, а не проблему. Stack Overflow предназначен для ответа на конкретные проблемы программирования, не помогая вам в архитектуре вашего приложения. – mason

ответ

1

Это широкий вопрос, но я дам достаточно, чтобы вы начали в правильном направлении. Поскольку вы собираетесь находиться в режиме балансировки нагрузки, вам понадобится объединить объединительную плату. Это сидит за вашими веб-серверами и объединяет обмен сообщениями. Вот некоторые ссылки, которые помогут вам настроить SignalR:

Кроме того, вы будете нуждаться в этих NuGet пакетов (минимум):

  • Microsoft.AspNet.SignalR.Redis или SqlServer
  • Microsoft.AspNet.SignalR
  • Microsoft.Owin
+0

Большое вам спасибо за ответ. На данный момент я голосую за ответ .. и надеюсь, что скоро я смогу отметить это как ответ :) – NMathur

1

Там нет ничего особенного в том, что вы хотите достичь. Перед отправкой сообщений SignalR ваше клиентское приложение должно пройти аутентификацию. Таким образом вы можете идентифицировать пользователя и защитить свои серверные ресурсы. Это первая часть, с которой я бы начал изучать (есть много информации об этом вопросе, если вы это сделаете).

Затем вам необходимо отправить сообщение с сервера пользователю, и у этого пользователя может быть подключено 2 клиентских приложения (веб-и мобильные или даже больше, как и другие вкладки браузера). Это может быть достигнуто с помощью групп SignalR. Группа SignalR - это всего лишь группа подключений (не пользователей) с заданным именем. Одним из распространенных сценариев является создание группы для каждого пользователя, и эта группа будет поддерживать соединения пользователя. Это логическая структура псевдо, как работают SignalR группы (не фактический код):

Group name: "johnUser" 
Group connections: [ 
    00001, // mobile app connection 
    00002, // brower tab connection 
    00003, // broswer tab connection 2 
    0000n // etc 
] 

Эти цифры являются идентификаторами моделирование подключения. SignalR создает их для вас. Тогда вам просто нужно отправить сообщение группе, и все подключенные клиенты получат ее.

Если вы только начинаете с SignalR я бы не усложнять implenting в backpane, если вы действительно не нуждаетесь в этом, и вы знаете, что вы делаете. Один сервер может обрабатывать сотни одновременных подключений, и вы можете масштабировать их позже, если хотите.

Что касается архитектуры, подмигнули не очень понятно, что вы имеете в виду Web и API работает отдельно. Лучше, если вы зададите более конкретные вопросы после того, как попытаетесь что-то сделать.

Смежные вопросы