我正在使用flask-socketio 建立从我的python Web 服务器到javascript 客户端的套接字连接。我能够建立连接,但它在一段时间内(5 秒左右)因错误而中断
socket.io.min.js:2 WebSocket connection to 'ws://localhost:5000/socket.io/?EIO=3&transport=websocket&sid=8ed663e14c6f47328b64f2d29a30d1cd' failed: Received a broken close frame containing invalid UTF-8.
发送消息的服务器端代码(定期调用,例如每 5 秒调用一次)
def send_message(result):
# it will forward the message to all clients.
print("sending message")
socketio.send("Send working", json=False)
接收消息的客户端代码
socket.on('message', function (data) {
console.log('message form backend ' + data);
});
不知何故它中断了-> 然后一段时间没有任何 react -> 然后再次自动连接-> 然后再次中断。
有人可以帮忙吗?非常感谢!
最佳答案
我修好了它。
socketio = SocketIO(app,ping_timeout=5)
ping_timeout – 客户端在断开连接之前等待服务器响应的时间(以秒为单位)。
所以如果你什么都不做,它会在 5 秒后断开连接。
解决办法是:
让您的客户端在超时之前向服务器发送消息。
因为我的服务器通常发送数据,所以我让我的客户端像:
socket.on('message', function (data) {
console.log('message form backend ' + data);
socket.send('data receive!');
});
关于flask - 使用flask-socketio频繁中断套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49730330/