我的客户端脚本上有以下代码段:
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
,但是由于某些原因,当我将它们用作套接字消息名称时,它无法匹配...
答案 0 :(得分:0)
您是否尝试过交换监听器?只是,将第二个放在第一位。
另外,请先检查并评论emit
。
答案 1 :(得分:0)
我知道了。 我必须将整个'socket.on(ID,....)移到一旦客户端从服务器套接字接收到其ID即可激活的函数中。否则,执行该行时ID是不确定的,因此事件侦听器将监听undefined ...,而不是客户端的实际ID。 感谢大家的帮助。