发射到不工作的所有套接字Socket.io

时间:2017-07-25 01:33:12

标签: javascript node.js express 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});
      }
    }
     

我确保它进入了if(electionExists)条件。另外,我打印出了连接客户端阵列,如下所示:

{ SdiVoIUuGfFL5AJXAAAA: true, 'wLh-EfkAIrWpjx6nAAAC': true }

并且只是为了它,我在循环中打印了每个客户端,这导致了这个:

SdiVoIUuGfFL5AJXAAAA
wLh-EfkAIrWpjx6nAAAC

因此,我认为问题不在于获得正确的套接字ID。但是,emit事件不起作用。在客户端我有这个:

  socket.on("isVoteValid", function(obj) {
    console.log("it enters isVoteValid");
  });

这真的非常简单但是console.log永远不会发生。我真的不明白为什么它不起作用。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

如果您想广播您的信息,请使用以下代码

if(electionExists) {
      socket.broadcast.emit("isVoteValid", {voteToValidate: voteToValidate});
}

或者您也可以使用此

if(electionExists) {
      io.sockets.emit("isVoteValid", {voteToValidate: voteToValidate});
}