插座连接经常与烧瓶插座断开

Vip*_*l J 6 flask socket.io flask-socketio

我正在使用flask-socketio从我的python web服务器到javascript客户端建立套接字连接.我能够建立连接但是它会在一段时间内(大约5秒左右)出现错误

socket.io.min.js:2与'ws:// localhost:5000/socket.io /?EIO = 3&transport = websocket&sid = 8ed663e14c6f47328b64f2d29a30d1cd'的WebSocket连接失败:收到包含无效UTF-8的破解关闭帧.

发送消息的服务器端代码(定期调用,每隔5秒调用一次)

def send_message(result):
    # it will forward the message to all clients.
    print("sending message")
    socketio.send("Send working",  json=False)
Run Code Online (Sandbox Code Playgroud)

客户端代码接收消息

socket.on('message', function (data) {
    console.log('message form backend ' + data);
});
Run Code Online (Sandbox Code Playgroud)

它以某种方式打破了 - >然后暂时没有发生 - >然后再次自动连接 - >然后再次中断.

有人可以帮忙吗?非常感谢!

小智 1

我修好了它。

\n\n
socketio = SocketIO(app,ping_timeout=5)\n
Run Code Online (Sandbox Code Playgroud)\n\n

ping_timeout \xe2\x80\x93 客户端在断开连接之前等待服务器响应的时间(以秒为单位)。\n因此如果您不执行任何操作,它将在 5 秒后断开连接。

\n\n

解决方案是:\n让客户端在超时之前向服务器发送消息。

\n\n

因为我的服务器通常发送数据,所以我让我的客户端如下:

\n\n
socket.on('message', function (data) {\n    console.log('message form backend ' + data);\n    socket.send('data receive!');\n});\n
Run Code Online (Sandbox Code Playgroud)\n