用变量

时间:2018-07-11 16:42:34

标签: javascript node.js socket.io

我的客户端脚本上有以下代码段:

socket.on('bla', function(data) {
    if (data == ID) {
        console.log('What the hell is happening?');
    }
})
socket.on(ID, function(data) {
    console.log('here:');
    console.log(data);
    console.log(ID);
});

这是我的服务器脚本上的代码段:

io.sockets.emit('bla', pairs[pairs.length-1][0].ID);
io.sockets.emit(pairs[pairs.length-1][0].ID, 'go');

这导致客户端控制台输出

  

到底是怎么回事?

,但不输出其他任何内容。这意味着服务器上的pairs[pairs.length-1][0].ID与客户端上的{strong>相等 ID,但是由于某些原因,当我将它们用作套接字消息名称时,它无法匹配...

2 个答案:

答案 0 :(得分:0)

您是否尝试过交换监听器?只是,将第二个放在第一位。

另外,请先检查并评论emit

答案 1 :(得分:0)

我知道了。 我必须将整个'socket.on(ID,....)移到一旦客户端从服务器套接字接收到其ID即可激活的函数中。否则,执行该行时ID是不确定的,因此事件侦听器将监听undefined ...,而不是客户端的实际ID。 感谢大家的帮助。