node.js socket.io cannot send to specific client

2019-03-02 17:16发布

问题:

I found a few references to this but nothing that actually direct helps. Also according to some research this is the proper way to send a message to a specific client. I have:

io.sockets.socket(players[i].id).emit('deal_card', {
    // etc
});

and I get this error on that line:

Missing error handler on 'socket'.TypeError: Object #<Namespace> has no method 'socket'

Any ideas?

回答1:

For socket.io 1.0 use:

io.sockets.connected[players[i].id].emit('deal_card', {..});

For 0.9 use:

io.sockets.sockets[players[i].id].emit('deal_card', {..});

(not io.sockets.socket[players[i].id].emit('deal_card', {..});)