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