Доступ к пабам / подсистемам из веб-приложений через WebSockets - PullRequest
0 голосов
/ 30 мая 2018

Мне нужны экземпляры веб-приложения для получения уведомлений через WebSocket.

Эти уведомления происходят из событий в серверных системах;эти события необходимо обрабатывать несколькими способами, а не только отправлять их клиентам.

Таким образом, система паб / подсистема идеальна: события публикуются, и n потребители обрабатывают их, если они имеют отношение ких операции (например, по темам).

Учитывая мое отсутствие знаний о WebSocket, мне трудно понять общую архитектуру, которую мне нужно создать.

В пабе /потребители подпространства подписываются на очереди сообщений, связанных с интересующими их «темами».

Можно ли сделать то же самое в WebSockets? (т.е. при подключении к WebSocket из браузера,могу ли я указать набор тем, которые интересуют клиента?).

Если это так, можно ли напрямую подключиться к системе pub / sub или мне нужен средний уровень, который потребляетиз паба / саба и проталкивает в веб-сокеты?

Я полагаю, что ответ на последний вопрос зависит от используемого паба / саба и ему потребуется некоторая библиотека через WebSocket.

Iя фамилияr с RabbitMQ, но я могу выбрать другой паб / подсистему, поскольку на данный момент ничего не установлено, поэтому у меня нет затрат на миграцию.

Спасибо

1 Ответ

0 голосов
/ 30 мая 2018

В отличие от MQTT, WebSockets не реализует Pub / Sub на уровне протокола.Вам нужно будет реализовать его поверх протокола WebSockets самостоятельно.Это, безусловно, возможно, но, как и следовало ожидать, это довольно утомительно.

В идеале вы должны использовать решение PaaS, такое как Ably , которое абстрагирует эту реализацию и позволяет использовать Pub / Sub в качестве функции из коробки.

Если вы хотите узнать о WebSockets очень быстро, вот краткое видео , отличающее его от других сетевых протоколов, таких как HTTP, Long Polling и т. Д.

Надеюсь, что ответит на вашвопрос.

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