如何知道socket.io中是否打开了特定的套接字?

时间:2014-03-27 16:17:42

标签: node.js sockets socket.io

我刚开始使用socket.io和node.js.我有一些代码用于向特定客户端发送消息:

io.sockets.sockets[receiverssocket2].emit('message',
{"source": sendersusername,
"message": msg.message,
"target": msg.target});

我从pgsql服务器获取接收器套接字ID。有时更新需要一些时间,因此当用户断开连接时,saps2仍然存在,并且会向特定套接字ID发出消息,这会因套接字不存在而产生错误。 有没有办法可以检查套接字ID是否存在,然后发出消息? 我可以获得连接套接字列表并检查它是否存在于数组中,但这可能需要一些时间。

1 个答案:

答案 0 :(得分:0)

那么,如果您的客户连接到特定的房间,那么您可以检索一系列客户端,如下所示:

io.sockets.clients('room');

你可以通过这个获得所有房间的数组:

io.sockets.manager.rooms;