2016-04-12 3 views
1

В нашей системе у нас есть один или несколько экземпляров интерфейса для каждого пользователя. Они размещены на нескольких серверах Citrix.Использование Rebus для push-уведомлений

Мы хотим уведомить пользователей, когда что-то произойдет, и убедитесь, что сообщение достигает каждого интерфейса. Как это сделать?

Первоначально, хотя было использовать публикацию/подписку, но разве нам не нужна очередь на интерфейс?

В качестве альтернативы вы можете каким-либо образом передать сообщение, гарантируя, что каждый экземпляр обработчика на интерфейсе получит сообщение?

ответ

1

Вы абсолютно правы, что вам понадобится очередь ввода для каждого экземпляра клиента, если вы хотите использовать Rebus для отправки сообщения во внешний интерфейс.

Я вообще не рекомендую использовать Rebus для непосредственного общения с клиентами, поскольку он в основном удобен для вещей, которые более «стабильны».

Дело в том, что клиенты приходят и уходят - это характер «клиента». Библиотеки сообщений, такие как Rebus (например, NServiceBus, MassTransit и т. Д.), Обычно лучше всего работают, когда количество конечных точек не слишком сильно колеблется.

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

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

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