检索io.socket中的所有套接字对象
我期待从io.sockets
获得所有的个人套接字对象,并遍历每个套接字对象。
就像是:
for (socket in io.sockets.something()) { // do something with each socket }
要么我做错了,要么就是错过了一些东西。 思考?
官方的方法是:
io.sockets.clients().forEach(function (socket) { .. });
或按房间过滤:
io.sockets.clients('roomname') .. same as above ..
这build议在上面的build议,因为socket.io的内部数据结构可以随时更改,并有可能打破你所有的代码与未来的更新。 当你使用这种official
方法时,你的风险要小得多。
这可能会或可能不会被“logging”,但是起作用:
for (var id in io.sockets.sockets) { var s = io.sockets.sockets[id]; if (!s.disconnected) { // ... // for example, s.emit('event', { ... }); } }
使用io.sockets.clients()
:
io.sockets.clients().forEach(function(s) { // ... // for example, s.emit('event', { ... }); });
您可以使用优秀的节点检查器附加到您的应用程序,并检查s
的内容。