终于让 Socket.IO
正常工作了,但是遇到了一个奇怪的问题。
我不确定这是否是最好的方法,但我正在使用:
io.sockets.clients().length
这将返回连接到我的服务器的客户端数量。问题是在几次连接和断开用户之后,这个数字开始保持高于应有的水平。
例如,如果我连接并要求我的朋友连接,数字会上升,这是正确的。但是当我们开始断开连接并重新连接时,数量并没有减少。
我在 VMware Ubuntu 服务器上运行 Node.js
和 Socket.IO
服务器。
为什么会这样或者是否有更好的方法来找出有多少人连接到服务器?
原文由 imperium2335 发布,翻译遵循 CC BY-SA 4.0 许可协议
这有一个 github问题。问题是,每当有人断开 socket.io 的连接时,都不会从数组中删除( splice ),而只是将值设置为“null”,因此实际上您的数组中有很多 null 值,这会使您的客户( ).length 比您在现实中拥有的连接更大。
您必须管理一种不同的方式来计算您的客户,例如
这是一个头脑嗡嗡声,为什么 socket.io 背后的人留下了这样的东西,但最好在 github 问题中解释,我作为链接发布!