【问题标题】:Socketio send message to specific client in namespaceSocketio 向命名空间中的特定客户端发送消息
【发布时间】:2014-12-27 08:41:56
【问题描述】:

服务器端:

io.of('/lobby').on('connection', function(client) {
    setInterval(function(){
        io.to(client.id).emit('message','test');
    },2000);
});

客户端:

var ioLobby = io.connect('127.0.0.1:9001/lobby');
ioLobby.on('message',function(data){
    console.log(data);
});

我正在尝试向 socket.io 版本 1.2.1 中的特定客户端发送消息。我已经验证了套接字加入了服务器端的默认房间,但它没有在客户端被触发。有什么想法吗?

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    io.to(client.id) 行仅在该用户首次加入同名房间时才有效。你需要类似的东西

    io.on('connection', function(socket){
      socket.join('some room');
    });
    

    然后你可以调用 io.to

    io.to('some room').emit('some event'):
    

    【讨论】:

    • 所有客户端在连接时自动加入一个房间,其名称是他们的客户端 ID。
    • 在您的客户端,您可能在 ioLobby 完成连接设置之前调用了第二行
    【解决方案2】:

    我妥协并最终使用了

    socket.emit()
    

    相比之下,唯一的缺点是需要对要发送到的套接字的引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2012-02-13
      • 2015-06-12
      相关资源
      最近更新 更多