Socketio将消息发送到命名空间中的特定客户端

时间:2014-12-21 09:45:52

标签: javascript node.js socket.io

服务器端:

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中向特定客户端发送消息。我已经验证了套接字加入了服务器端的默认空间,但它没有在客户端触发。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

行io.to(client.id)仅在该用户首次加入具有相同名称的房间时才有效。你需要像

这样的东西
io.on('connection', function(socket){
  socket.join('some room');
});

然后你可以拨打io.to

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

答案 1 :(得分:0)

我妥协并最终使用

socket.emit()

相比之下,唯一的缺点就是需要参考你要发出的插座。