socket.io向一个不工作的客户端发出

时间:2017-02-23 13:04:00

标签: node.js socket.io

我正在使用socket.io 1.7.3版本。服务器代码:

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.logs似乎都是正确的,但我没有得到任何警报。

1 个答案:

答案 0 :(得分:0)

要向特定客户端发送消息,您必须将该客户端的socket.id提供给服务器,并在服务器端socket.io负责通过使用

来传递该消息。
 socket.broadcast.to('ID').emit( 'send msg', {somedata : somedata_server} );

在您的代码中

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