我试图发送一个消息到连接到我的服务器使用socket.io的所有插座。到目前为止,代码如下:发射到所有插座不工作Socket.io
if(electionExists) { var connectedClients = io.sockets.adapter.rooms[electionRequested].sockets; for(client in connectedClients) { socket.to(client).emit("isVoteValid", {voteToValidate: voteToValidate}); } }
我确信,它进入,如果(electionExists)条件。另外,我打印出来,连客户的阵列,它看起来像这样:
{ SdiVoIUuGfFL5AJXAAAA: true, 'wLh-EfkAIrWpjx6nAAAC': true }
和公正的缘故吧,我打印每个客户的循环,从而导致此:
SdiVoIUuGfFL5AJXAAAA
wLh-EfkAIrWpjx6nAAAC
因此,我导致相信问题不在于获取正确的套接字ID。但是,发射事件不起作用。在客户端我有这个:
socket.on("isVoteValid", function(obj) {
console.log("it enters isVoteValid");
});
这真的很简单,但console.log永远不会发生。我真的不明白为什么它不起作用。任何人有想法?
尝试'socket.broadcast.emit'发送给所有客户端,而无需使用For循环 – frozen
没有工作:(没有出现在console.log –
因为你只是试图发射到一个房间的所有插座,为什么你不只是播放房间? – jfriend00