我正在使用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似乎都是正确的,但我没有得到任何警报。
答案 0 :(得分:0)
要向特定客户端发送消息,您必须将该客户端的socket.id提供给服务器,并在服务器端socket.io负责通过使用
来传递该消息。 socket.broadcast.to('ID').emit( 'send msg', {somedata : somedata_server} );
在您的代码中
socket.broadcast.to(socket.id).emit('something');