我正在使用使用 express 的本地套接字服务器,该服务器使用 ngrok 公开到互联网。这是服务器代码:
const app = require('express')();
const http = require('http').createServer(app);
app.get('/', (req, res) => {
res.send("Node Server is running. Yay!!");
});
//Socket Logic
const socketio = require('socket.io')(http)
socketio.on("connection", (userSocket) => {
console.log('Connected to socket');
});
http.listen(3000, () => {
console.log('listening on port 3000');
});
我的连接逻辑是:
void connectToServer() {
try {
socket = io('https://fa6387728fcd.ngrok.io', <String, dynamic>{
'transports': ['websocket'],
'autoConnect': false,
});
// Connect to websocket
socket.connect();
// Handle socket events
socket.on('connect', (data) => print('Connected to socket server'));
socket.on('disconnect', (reason) => print('disconnected $reason'));
socket.on('error', (err) => print('Error: $err'));
} catch (e) {
print(e.toString());
}
}
但我一直收到 disconnected ping timeout
或有时我收到 disconnected transport close
最佳答案
我遇到了同样的问题。 问题不是由 socket_io_client 引起的包。
当我在服务器端更新 socket.io
时,问题就解决了。
只需在您的 node.js 服务器上运行 npm install socket.io@latest
命令即可。
关于node.js - Flutter Socket io 几秒钟后断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65411356/