socket.io发射到一个客户端不工作

socket.io发射到一个客户端不工作

问题描述:

我使用的是socket.io 1.7.3版本。服务器代码:socket.io发射到一个客户端不工作

io.on('connection', function (socket) { 
    console.log(socket.id); // CdnNBVe9ktJmMcb1AAAA 
    socket.to(socket.id).emit('something'); 
    socket.emit('something'); // if I do it without to, it works but to all clients 
    console.log(socket.rooms); // { CdnNBVe9ktJmMcb1AAAA 'CdnNBVe9ktJmMcb1AAAA' } 
}); 

客户:

<script src="/socket.io/socket.io.js"></script> 
var socket = io.connect(..); 
socket.on('connect', function() { 
    console.log(socket.id); // CdnNBVe9ktJmMcb1AAAA 
    socket.on('something', function() { 
     alert('it works'); 
    }); 
}); 

为什么它不工作?虽然所有console.log似乎都是正确的,但我没有收到任何警报。

将消息发送给特定的客户端,您必须提供客户端的socket.id到服务器,并在服务器端socket.io需要通过提供该消息的照顾,

socket.broadcast.to('ID').emit('send msg', {somedata : somedata_server}); 

在你的代码

socket.broadcast.to(socket.id).emit('something'); 
+0

既没有为我工作,但无论如何,在文档,我可以看到这一点:socket.to().emit(“嗨”,“我刚认识你”); – dontHaveName