【问题标题】:Socket.IO 4.0.1: Get socket by idSocket.IO 4.0.1:通过 id 获取套接字
【发布时间】:2021-05-02 21:19:45
【问题描述】:

我用过

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 - 用于最新的子版本。

您有任何重构说明吗?

【问题讨论】:

    标签: node.js sockets websocket socket.io


    【解决方案1】:

    这个问题和答案可能是https://stackoverflow.com/a/66835961/1707015 的(更新/更好)副本。对不起,我现在才看到。归功于 Sanjay Nishad。


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

    【讨论】:

      【解决方案2】:

      “socket.io”:“^4.1.3”

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

      对我有用

      【讨论】:

      • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
      猜你喜欢
      • 2015-01-19
      • 2016-07-24
      • 2014-10-01
      • 2014-12-30
      • 2015-07-06
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多