Дизайн Websocket - несколько маршрутов (много соединений) или один маршрут, который обрабатывает все? - PullRequest
0 голосов
/ 24 июня 2018

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

Как настроена моя реализация (я использую Go), у меня есть /ws/tracking маршрут веб-сокета, где я могу запускать обновления для подключенных клиентов в группе, когда член группы обновляет свое местоположение и что клиент также использует для отправки своих обновлений на сервер.

Должен ли я создать еще несколько маршрутов, таких как /ws/analytics, /ws/notifications и т. Д., Или я должен заново выполнить мою реализацию, чтобы иметь только один обработчик, такой как /ws, который может обрабатывать все?

При большем количестве маршрутов это означает, что моим клиентам придется открывать несколько соединений потенциально с каждой конечной точкой. С одним маршрутом, может быть, у меня может быть ключ / идентификатор для ресурса (т. Е. analytics, tracking, notification и т. Д.)?

Не знаю, правильный ли это путь, поэтому, пожалуйста, дайте мне знать, как лучше всего использовать websockets.

Спасибо

1 Ответ

0 голосов
/ 25 июня 2018

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

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