несколько сокетов, совместно использующих порт в node.js (через socket.io) - PullRequest
6 голосов
/ 19 марта 2012

Я не уверен, как использовать один порт на стороне сервера одновременно для нескольких сокетов.Как мы можем сделать это в node.js.Я в настоящее время использую socket.io и один сокет на порт.В случае, если решения не существуют, но возможно, также, пожалуйста, дайте свое предложение для достижения того же.Кроме того, какие проблемы могут быть, если мы совместно используем порт?Какие могут быть другие связанные варианты, учитывая ситуацию, когда клиенты могут бездействовать, но будут использовать порт на сервере, поскольку нам необходимо поддерживать сокет-соединение для каждого клиента?

1 Ответ

5 голосов
/ 21 марта 2012

Предполагая, что ваш сервер работает на порте 80, вот что происходит ниже:

  1. Сервер прослушивает порт 80.
  2. Клиент1 подключается к порту 80 сервера через свой порт 12345
  3. Сервер принимает запрос соединения client1 и назначает порт 9876 для связи с client1.
  4. Сервер продолжает прослушивать порт 80.

Так что, несмотря на то, что вы думаете, порт 80 не используется, он слушатель Ваш компьютер, вероятно, имеет 50000 портов бесплатно, поэтому проблем нет.

К вашему сведению: порты не могут быть общими для других процессов. Только дочерние процессы Node могут быть общими, посмотрите, как это может быть: http://nodejs.org/docs/latest/api/cluster.html

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