html - socket.io 客户端到客户端消息传递

标签 html node.js sockets 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);
  });
});

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

对于为什么 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/

相关文章:

node.js - Heroku Node.js RedisCloud Redis::CannotConnectError 在本地主机上而不是 REDISCLOUD_URL

c++ - 选择套接字和标准输入

html - 如何使用图标代替 ng2 智能表的按钮

python - 图库 slider 图像太大

html - 并行 Bootstrap 网格系统

JavaScript/HTML5 - 获取 Canvas 对象文本?

node.js - 将Bootstrap主题添加到具有 Node 依赖性的 Electron 应用程序

node.js - 使用 Typescript 自动验证请求的最佳方法是什么?

python - 通过套接字发送和接收字节,具体取决于您的互联网速度

C# 客户端-服务器协议(protocol)/模型问题