我正在尝试使用socket.io向连接到我的服务器的所有套接字发送消息。到目前为止,代码如下:
if(electionExists) { var connectedClients = io.sockets.adapter.rooms[electionRequested].sockets; for(client in connectedClients) { socket.to(client).emit("isVoteValid", {voteToValidate: voteToValidate}); } }
我确保它进入了if(electionExists)条件。另外,我打印出了连接客户端阵列,如下所示:
{ SdiVoIUuGfFL5AJXAAAA: true, 'wLh-EfkAIrWpjx6nAAAC': true }
并且只是为了它,我在循环中打印了每个客户端,这导致了这个:
SdiVoIUuGfFL5AJXAAAA
wLh-EfkAIrWpjx6nAAAC
因此,我认为问题不在于获得正确的套接字ID。但是,emit事件不起作用。在客户端我有这个:
socket.on("isVoteValid", function(obj) {
console.log("it enters isVoteValid");
});
这真的非常简单但是console.log永远不会发生。我真的不明白为什么它不起作用。有人有想法吗?
答案 0 :(得分:0)
如果您想广播您的信息,请使用以下代码
if(electionExists) {
socket.broadcast.emit("isVoteValid", {voteToValidate: voteToValidate});
}
或者您也可以使用此
if(electionExists) {
io.sockets.emit("isVoteValid", {voteToValidate: voteToValidate});
}