【发布时间】:2013-10-23 10:31:07
【问题描述】:
我在使用NodeJS 和Socket.io 时遇到了一个奇怪的问题。
通过ZeroMQ 接收数据的服务器。那工作完美。
对于来自ZeroMQ 的每条消息,我使用sockets.volatile.emit 将其发送给所有连接的客户端。
这个问题只出现在大量连接的帐户(超过 100 个)上,似乎有一个发送给客户端的队列(客户端接收消息的延迟不断增加)
注意:每个连接的客户端都从 ZeroMQ 接收到每条消息,所以基本上对于更多的客户端,通过 socket.IO 发送的数据更多。
通过日志/调试,我知道来自ZeroMQ 的接收没有延迟,并且所有工作都在该部分工作。发射似乎有一个不断增加的队列或延迟。
每个客户端的消息速率为80 消息/秒。
Note: NodeJS 0.10.20 和 Socket.IO 0.9.16。
如何控制它以防止客户端收到旧消息?
【问题讨论】:
-
如果你喜欢你可以发布一些代码,我们可以找到解决方案,看来你不是唯一一个遇到这个问题的人?
-
是的,一些代码会有所帮助,或者至少描述一下服务器接收 ZeroMQ 消息和服务器写入套接字之间发生的情况。
标签: javascript node.js socket.io