在0.9.x版本中,我们可以通过ID获取socket,方法如下:
io.sockets.socket(socketId)
但是在1.0.x版本中我们无法这样做。如何在1.0.x中按ID查找套接字?
在0.9.x版本中,我们可以通过ID获取socket,方法如下:
io.sockets.socket(socketId)
但是在1.0.x版本中我们无法这样做。如何在1.0.x中按ID查找套接字?
如果要使用socket.io 1.0,请使用:
io.sockets.connected[socketId]
对于0.9版本,它应该是io.sockets.sockets[socketId]而不是io.sockets.socket[socketId]
Socket.io版本4.0.0
io.sockets.sockets.get(socketId);
cluster adapter
一起使用时,这不起作用。 - Sujith S Manjavana你也可以使用类似这样的方式:
io.to(socketid).emit();
版本 3.0.3
// in "of", you can put '/' or whatever namespace you're using
io.of('/').sockets.get(socketId)
sockets
不再是一个简单的对象。它是一个 Map 对象,所以你必须使用 .get()
方法。Socket.io Version 2.0.3+
let namespace = null;
let ns = _io.of(namespace || "/");
let socket = ns.connected[socketId] // assuming you have id of the socket
var socket1 = io.of("/").connected[socketId];
socket1.join("some room");
socket1.leave("some room");
socket1.emit();
或其他你想要的事情。
fetchSockets()
函数来获取使用socketId的连接,如下所示。const sockets = await io.in(theSocketId).fetchSockets();
io.sockets.connected[socketId].emit()
访问它,但是可以通过类似的方式工作var nsp = io.of('/my-namespace');
然后使用nsp.connected[socketId].emit()
。谢谢。 - Luckylookeio.of('/namespace').connected[socketId].emit('message-tag', data, callback)
我认为值得一提的是,我也可以通过传递回调函数作为桥梁来请求从连接的客户端获取数据。 - Aryo