在0.9.x版本中,我们可以按ID获取套接字:
io.sockets.socket(socketId)
但是在1.0.x中,我们无法做到。如何在1.0.x中通过id查找套接字?
答案 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()
。