多个套接字在node.js中共享一个端口(通过socket.io)

时间:2012-03-19 17:53:07

标签: sockets node.js redis socket.io

我不确定如何在服务器端同时使用多个套接字的单个端口。我们怎么能在node.js中做到这一点。我目前正在使用socket.io并且每个端口有一个套接字。如果解决方案不存在但有可能,那么请提出您的建议,以实现相同的目标。如果我们共享一个端口,那么还有什么问题呢?考虑到客户端可以闲置但会占用服务器端口的情况可能是其他相关选项,因为我们需要为每个客户端维护套接字连接?

1 个答案:

答案 0 :(得分:5)

假设您的服务器在端口80上运行,下面会发生以下情况:

  1. 服务器侦听端口80。
  2. Client1从其端口12345
  3. 连接到服务器端口80
  4. 服务器接受client1的连接请求,并指定端口9876与client1进行通信。
  5. 服务器继续侦听端口80。
  6. 因此,尽管你的想法,端口80没有消耗,它是一个倾听者。您的计算机可能免费提供50000个端口,因此没有问题。

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