我在使用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()
不起作用或者用什么来代替它有什么想法吗?
最佳答案
Socket.io 有房间的概念,一旦套接字加入房间,它将接收发送到房间的所有消息,因此您不需要跟踪谁在房间中,处理断开连接等。 ..
连接时,您可以使用:
socket.join('room')
并向该房间中的每个人发送消息:
io.sockets.in('room').emit('event_name', data)
有关 socket.io wiki 的更多信息:https://github.com/LearnBoost/socket.io/wiki/Rooms
关于html - socket.io 客户端到客户端消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255969/