socket.io客户端到客户端消息(socket.io client to client mess

2019-07-21 02:48发布

我在使用socket.io工作麻烦的基本客户对客户(或客户端 - 真的>服务器 - >客户端)。 继承人的代码,我现在所拥有的:

io.sockets.on('connection', function (socket) {

users.push(socket.sessionId);

for(userID in users)    {
    console.log(userID);
    io.sockets.socket(userID).emit('message', { msg: 'New User Connected succesfully' });
}
socket.emit('message', { msg: 'Connected succesfully' });


socket.on('my other event', function (data) {
    console.log(data);
  });
});

从我的理解,应该发送新的用户信息到每一个连接的用户(个人,因为我想在以后做实际的个人信息)。 相反,我只得到末尾的“连接成功”的消息。 我没有从我的服务器或客户机的任何错误或其他负面的指标。

为什么任何想法io.sockets.socket(userID).emit()不工作或者是什么在它的地方使用?

Answer 1:

尝试

users.push(socket); // without .sessionId

for (var u in users)    {
   // users[u] is now the socket
   console.log(users[u].id);
   users[u].emit('message', { msg: 'New User Connected succesfully' });
}


Answer 2:

Socket.io有室,在那里,一旦插座已经加入了一个房间,它就能接收到一个房间的所有消息的概念,这样你就不会需要跟踪谁在房间里,对付断开,等...

在连接时,你会使用:

socket.join('room')

并发送一条消息给大家在那个房间:

io.sockets.in('room').emit('event_name', data)

在socket.io维基更多信息: https://github.com/LearnBoost/socket.io/wiki/Rooms



Answer 3:

现在,您还可以使用...

io.to('room').emit('event_name', data);

作为替代io.sockets.in



文章来源: socket.io client to client messaging