Socket.IO 4.0.1:按id获取套接字



我使用

const my_socket = io.sockets.connected['YnwlYH-gCKT2K9jEAAAu'];

很多。

https://stackoverflow.com/a/24464450/1707015

它在3.X和4.0.1中被破坏了吗?

$ npm list socket.io
socket.io@4.0.1
$ npm list socket.io-client
socket.io-client@4.0.1
# Object.keys(io.sockets):
_events,_eventsCount,_maxListeners,sockets,_fns,_ids,server,name,adapter
# io.sockets.connected:
undefined
# io.sockets.connected['YnwlYH-gCKT2K9jEAAAu']:
TypeError: Cannot read property 'YnwlYH-gCKT2K9jEAAAu' of undefined
at Socket.<anonymous> (/path:row:char)
at processTicksAndRejections (internal/process/task_queues.js:86:5)

我可以让它运行版本2(而不是3或4(:

$ npm install --quiet --save-dev socket.io@2.X socket.io-client@2.X

是的,这实际上是一个X-用于最新的子版本。

你有重构说明吗?

这个问题和答案可能是https://stackoverflow.com/a/66835961/1707015.对不起,我现在才看到。感谢桑杰·尼沙德。


const my_socket = io.sockets.sockets.get('YnwlYH-gCKT2K9jEAAAu');

"socket.io":"4.1.3";

nsp.sockets.get(socketid).join(roomId)
nsp.to(roomId).emit("message",{message : "something"})

它对我有效

最新更新