flask - 使用flask-socketio频繁中断套接字连接

标签 flask socket.io flask-socketio

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

相关文章:

python - 如何使 Flask 响应与请求相同的 HTTP 版本

node.js - 从 node.js 向 bash 发送和执行命令

opencv - Flask 视频流、多处理、CPU 使用率上限为单核级别

flask - 504 网关超时 flask 套接字

flask-socketio - 服务器到服务器通信

python - Peewee 的 Flask 仅在重新启动时获取新数据

python - 用 flask 记录错误

amazon-ec2 - 如何使用Amazon AWS访问Flask应用

javascript - Socket.io 将数组传递给客户端

javascript - 我们可以在 Node JS 应用程序中使用带有 ejs(嵌入式 javascript)的 socket.io 而不是 html 页面吗?