2012-03-19 41 views
6

我不知道如何在服务器端同时使用一个单一的端口用于多个套接字。我们如何在node.js中做到这一点。我目前使用的是socket.io,并且每个端口都有一个套接字。如果解决方案不存在但可能,那么也请给出您的建议,以实现相同。如果我们共享一个端口,那么还有什么问题呢?考虑到客户端可能处于空闲状态,但会占用服务器端口,因为我们需要为每个客户端维护一个套接字连接,其他相关选项可能是什么?在node.js中共享一个端口的多个套接字(通过socket.io)

回答

5

假设你的服务器运行在80端口,这里是下发生的:

  1. 服务器侦听端口80
  2. 客户端1从它的端口连接到服务器的80端口12345
  3. 服务器接受客户端1的连接请求并分配端口9876与client1通信。
  4. 服务器继续侦听端口80

因此,尽管你的想法,80端口没有被消耗,这是一个倾听者。你的电脑可能有50000个免费端口,所以没有问题。

仅供参考:端口不能在其他进程中共享。只有Node的子进程可以共享,看看它是如何可能的:http://nodejs.org/docs/latest/api/cluster.html

+0

#3不正确。服务器(至少使用HTTP)不会分配额外的端口来与客户端进行通信。只要每个连接的另一端具有唯一的IP和端口(client1:12345)组合,TCP允许多个连接到单个端口(80)。 – josh3736 2013-10-03 14:31:37

相关问题