socket.emit在socket.on下不起作用

时间:2019-03-05 07:45:05

标签: node.js socket.io

我正在像这样从客户端向服务器发送数据

socket.emit('event1', data);

服务器完全像

一样接收此数据
socket.on('event1', function (data){
    console.log(data);
});

但是当我在此socket.on事件下从服务器向客户端发送数据时,emit事件中的任何一个都不起作用,仅socket.broadcast.emit正在将数据发送到client.js

 socket.on('event1', function (data){
    socket.to(data.room).emit('event2', data);             // not working
    io.in(data.room).emit('event2', data);                 // not working
    io.sockets.in(data.room).emit('event2', data);         // not working
    socket.emit('event2', data);                           // not working
    socket.broadcast.to(data.room).emit('event2', data);   // not working

    socket.broadcast.emit('event2', data);                 // working
});

1 个答案:

答案 0 :(得分:0)

您共享的代码示例缺少comma operator ,,该{{3}} socket.emit('event1', data); socket.on('event1', function (data) { console.log(data); }); socket.on('event1', function (data) { socket.to(data.room).emit('event2', data); // not working io.in(data.room).emit('event2', data); // not working io.sockets.in(data.room).emit('event2', data); // not working socket.emit('event2', data); // not working socket.broadcast.to(data.room).emit('event2', data); // not working socket.broadcast.emit('event2', data); // working }); 用于分隔语句或表达式中的函数自变量或其他术语。

这是您提交的每个示例,其中包括逗号运算符:

{{1}}