Streamlabs 套接字 Ping 超时

Streamlabs Socket Ping Timeout

我正在尝试使用 Node JS 使用套接字 io 客户端连接到 Streamlabs API。我阅读了他们的文档并尝试调试。在我 运行 代码之后,服务器没有响应我的套接字请求。我确实设置了令牌,将其粘贴到 .env 文件中。这是我获得套接字令牌的地方,我相信它是正确的。我在 Streamlabs⇒Setting⇒API Settings⇒API Token⇒Your Socket API Token

Image of where I got the token

这是我的代码:

require('dotenv').config()
const io = require("socket.io-client");

//Connect to socket
const streamlabs = io(`https://sockets.streamlabs.com?token=${process.env.SOCKET_TOKEN}`, {transports: ['websocket']});
  
console.log(`[Streamlabs]: connecting socket to https://sockets.streamlabs.com?token=${process.env.SOCKET_TOKEN}\nTimestamp: ${Date.now()}\n`)

//Perform Action on event
streamlabs.on('event', (eventData) => {
    console.log(eventData)
});

streamlabs.on("connect", ()=>{
    console.log(`[Streamlabs]: socket connected \nTimestamp: ${Date.now()}\n`)
});

streamlabs.on("disconnect", (reason) => {
    console.log(`[Streamlabs]: socket disconnected \nReason: ${reason} \nTimestamp: ${Date.now()}\n`)
});

预期行为:

[Streamlabs]: connecting socket to https://sockets.streamlabs.com?token=eyJ0...
Timestamp: 1620442...

[Streamlabs]: socket connected
Timestamp: 1620442...

我得到的是:

[Streamlabs]: connecting socket to https://sockets.streamlabs.com?token=eyJ0...
Timestamp: 1620442...
    
[Streamlabs]: socket disconnected 
Reason: ping timeout 
Timestamp: 1620442...
    
[Streamlabs]: socket disconnected 
Reason: ping timeout 
Timestamp: 1620442...

这种情况会一直持续下去。知道是什么导致了这个问题吗?

(自己回答哈哈)

经过大量研究,我最终在 YouTube 教程评论部分进行了搜索,他们建议新的 socket io 客户端版本与 Streamlabs 不兼容 API,所以我必须切换到旧版本的 socket io 客户端。现在一切正常。如果您也有同样的问题,这里有它。要解决此问题,运行 在您的项目目录中执行以下命令:

npm install socket.io-client@2.3.1

如果有人像我一样正在使用 python-socketio 试图找出同样的问题,解决方案与接受的答案相同。您需要将 python-socketio 回滚到旧版本及其依赖项之一。使用以下 2 个命令解决问题:

pip3 install 'python-socketio==5.04' --force-reinstall
pip3 install 'python-engineio==3.14.2' --force-reinstall