Возможно ли для клиента указать его тип серверу websocket? - PullRequest
0 голосов
/ 27 октября 2018

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

Итак, есть Компьютер1, Компьютер2, Android1, Android2. Все они подключены к моему серверу websocket

Предположим, я Android1 и хочу в какой-то момент времени общаться только с Компьютером1, а потом я хочу общаться с Компьютером2, а затем и с Android2. Как мне (как Android1) сообщить серверу, с кем я хочу общаться в данный момент времени, и как будет выглядеть код / ​​логика на стороне сервера для направления потока трафика?

1 Ответ

0 голосов
/ 29 октября 2018

Эта функциональность должна быть добавлена ​​на уровне приложения.Websockets - это протокол низкого уровня для передачи данных между клиентом и сервером.Любая дополнительная логика должна быть добавлена ​​в ваше приложение, в зависимости от вашей архитектуры.Вам необходимо обогатить пакеты, передаваемые между вашими клиентами / сервером, дополнительной информацией (такой как тип клиента, идентификатор клиента, IP-адрес и т. Д.), Чтобы обеспечить некоторую степень расширяемости.Некоторые дополнительные вещи, о которых нужно подумать, чтобы позволить вашему приложению масштабироваться:

  • добавить слой персистентности: сохранить состояние вашей сети в базе данных, какие узлы подключены, какой клиент может подключиться к какому серверу и т. Д.
  • создать архитектуру мастер-работник для ваших серверов: иметь один мастер в качестве основного сервера, который отправляет клиентам информацию о том, к какому работнику они должны подключиться (при условии, что Computer1, Computer2 - ваши работники)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...