在客户端上使用多个websocket连接而不是一个连接是否不太高效

时间:2018-02-01 20:18:00

标签: websocket

我目前正在构建机器人。目前,我已打开102个套接字连接。我找到了一种方法来启动Multiplex套接字以同时连接到不同的事件流。哦,服务器也不是我的。性能会更好吗?谢谢!

1 个答案:

答案 0 :(得分:1)

每个打开的套接字都需要客户端和服务器上的内存,并且需要处理才能打开套接字并发送保持活动。此外,来自客户端的所有套接字共享相同的服务器带宽。来自给定客户端的所有套接字共享相同的客户端带宽。

如果您的成千上万或几万个客户端都连接到一台服务器,那么您肯定希望将客户端限制为尽可能少的每个客户端的socket.io连接。这将增强您的服务器可伸缩性(减少连接和保持活动开销)并减少服务器内存使用量。而且,由于它们共享相同的客户端和服务器带宽,因此不应以任何方式降低处理速度。

如果您为每个客户端打开了102个套接字,那么您真的希望立即减少它,除非您只需要一次连接少量客户端。

  

表现会更好吗?

减少每个客户端拥有的socket.io连接数将提高服务器的可伸缩性。它可能会提高性能或性能影响可能难以察觉。这取决于很多因素(例如服务器有多少备用,未使用的CPU和带宽)。至少,连接时间将减少,因为您只需建立一个连接而不是多个连接。减少每个客户端的socket.io连接数通常是一件好事。