socket.io 客户端到客户端的消息传递

MrG*_*ass 3 html sockets node.js socket.io

我无法使用 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);
  });
});
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这应该将新用户消息发送给每个连接的用户(个人而言,因为我想稍后处理实际的个人消息)。相反,我只在最后收到“连接成功”消息。我的服务器或客户端没有收到任何错误或其他负面指示。

关于为什么io.sockets.socket(userID).emit()不起作用或在其位置使用什么的任何想法?

Pas*_*cle 5

Socket.io 有房间的概念,一旦一个套接字加入一个房间,它就会收到发送到房间的所有消息,所以你不需要跟踪房间里的人,处理断开连接等......

在连接时,您将使用:

socket.join('room')
Run Code Online (Sandbox Code Playgroud)

并向该房间中的每个人发送消息:

io.sockets.in('room').emit('event_name', data)
Run Code Online (Sandbox Code Playgroud)

socket.io wiki 上的更多信息:https : //github.com/LearnBoost/socket.io/wiki/Rooms