socket.io – 发送到socketid(单个客户端)不起作用

我正在使用0.9.4版本(根据您的指导,我可以使用任何版本)

在服务器(app.js)中,我存储的套接字标识是这样的:

var socket_ids = []; io.sockets.on('connection', function(socket) { socket_ids.push(socket.id); #This is how I am getting socket id. My real code logic is totally different, but getting socket id using socket.id; socket.on('createNote', function(data) { socket.broadcast.to(socket_ids[0]).emit('onNoteCreated', data); }); }); 

总之,我有4人开了会议,所有4人是不同的用户。

当p1发送消息时,只能到达p2。 当p3发送消息时,只能到达p4。

保持if..else逻辑放在一边(我很好),当我广播使用套接字id的消息时,与该套接字id的客户端/浏览器不接收该消息。 另外,上面的广播代码行(其他行是SO的自定义)没有给出错误,但客户端没有收到。

但是,这些客户端/浏览器在广播时接收消息。

谢谢。

随着最新的socket.io版本,这是我将如何做到这一点:

 var sockets = []; io.on("connection", function(socket){ // Store whole socket object. // NOTE: You should probably loop through sockets array // to see if a socket with this id already exists sockets.push(socket); socket.on("createNote", function(data){ sockets[0].emit("onNoteCreated", data); }); }); 

希望这可以帮助