Связь между несколькими веб-приложениями с помощью SignalR - PullRequest
6 голосов
/ 11 октября 2011

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

Спасибо!

Более подробная информация: Пример: Приложение A (интерфейс торгов) - веб-страница, позволяющая разместить несколько конечных пользователей.ставки на определенные позиции.

Приложение B (интерфейс управления) - веб-страница, позволяющая пользователю (или потенциально может быть несколькими пользователями) отслеживать / контролировать действия из интерфейса торгов.

Итаккогда пользователь из приложения А делает ставку на кусок, мне потребуется способ предупредить приложение Б о том, что ставка была размещена.Затем из приложения B, если пользователь решит принять ставку, мне нужно отправить предупреждение обратно в приложение A (чтобы обновить текущую цену, увеличить ставку и т. Д.)

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Честно говоря, было бы проще сделать так, чтобы каждое приложение передавало уведомления друг другу через стандартные сервисные вызовы (WCF, ASMX, конечные точки обработчика HTTP, контроллеры MVC и т. Д.). SignalR полезен при обмене данными между браузерами и серверами, потому что нет единого способа выполнить передачу с сервера на подключенный браузер. Но перейти от веб-приложения к веб-приложению просто; Приложение A просто вызывает конечную точку службы в приложении B, чтобы уведомить ее о том, что происходит.

0 голосов
/ 12 сентября 2014

Предполагая, что вам нужно что-то вроде ...

Пользователь (браузер) --- Приложение A --- Приложение B --- Пользователь (браузер)

Обмен данными в реальном времени можетэто можно сделать, выполнив следующее ...

Это не работа для signalR, однако что-то вроде NServiceBus очень хорошо подойдет для этого.

вы ссылаетесь на файл шины dll, и концентраторы могут оба поднятьи реагировать на события.В вашем случае вы должны использовать и SignalR, и вашу технологию Service Bus для совместной синхронизации приложений.

Таким образом, процесс выглядит примерно так: *

  1. Пользователь в приложении Aзапускает браузер и запрашивает страницу.
  2. Приложение A создает экземпляр Hub, который внутренне подписывается на события служебной шины.
  3. Пользователь в приложении B запускает браузер и запрашивает страницу.
  4. Приложение B создает экземпляр Hub, который внутренне подписывается на события служебной шины.
  5. Пользователь в любом приложении выполняет какое-либо действие, в результате чего SignalR принимает сообщение.
  6. SignalR вызывает событие шины, чтобы сказать «Этот пользователь что-то сделал» на служебной шине.
  7. Other Hub в другом Приложении посредством подписки на событие получает уведомление о событии и предпринимает какие-либо действия, чтобы проинформировать об этом своих подключенных пользователей.

Урок, который необходимо извлечь здесь ...Не пытайтесь заставить технологию сделать что-то не по назначению ... используйте правильный инструмент для работы.

Это полное решение может быть сделано с помощью чуть более 20 строк кода после получения базовой инфраструктуры.setup.

NServiceBus можно найти здесь:

http://particular.net/nservicebus

Отказ от ответственности: могут быть другие решения, но это одно предложение, не предполагайте, что этоЕдинственный способ, которым это может быть решено, и единственные технологии, которые будут использоваться таким образом.Я никоим образом не связан с Particular или продуктом NServiceBus.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...