Socket.IO 1.0.x:通过id获取套接字

时间:2014-11-21 07:12:44

标签: node.js socket.io socket.io-1.0

在0.9.x版本中,我们可以按ID获取套接字:

io.sockets.socket(socketId)

但是在1.0.x中,我们无法做到。如何在1.0.x中通过id查找套接字?

6 个答案:

答案 0 :(得分:34)

对于socket.io 1.0,请使用:

io.sockets.connected[socketId]

0.9 for io.sockets.sockets [socketId]而不是io.sockets.socket [socketId]

答案 1 :(得分:13)

您也可以使用:

io.to(socketid).emit();

答案 2 :(得分:5)

Socket.io 4.0.0 版

io.sockets.sockets.get(socketId);

答案 3 :(得分:1)

Socket.io版本2.0.3 +

    let namespace = null;
    let ns = _io.of(namespace || "/");
    let socket = ns.connected[socketId] // assuming you have  id of the socket

答案 4 :(得分:1)

我尝试过的最简单的方法是:

var socket1 = io.of("/").connected[socketId];

那你就可以做

socket1.join("some room");
socket1.leave("some room");
socket1.emit();

或您想要的其他内容。

答案 5 :(得分:1)

版本3.0.3

// in "of", you can put '/' or whatever namespace you're using
    
io.of('/').sockets.get(socketId)

基本上,sockets不再是简单的对象。这是一张地图,因此您必须使用.get()