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
我正在尝试使用 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