我有一个非常简单的Python(Flask socket.io)应用程序,它可以用作服务器,而另一个应用程序是用AngularJS编写的客户端。
为了处理已连接和已断开连接的客户端,我使用了pectelivy:
@socketio.on('connect')
def on_connect():
print("Client connected")
@socketio.on('disconnect')
def on_disconnect():
print("Client disconnected")
当客户端连接到我的应用程序时,我会获得有关该应用程序的信息,以防万一客户端断开连接(例如,由于网络问题),我不会获得任何信息。
处理客户端意外断开连接的情况的正确方法是什么?
最佳答案
有两种连接类型:使用长池连接或WebSocket。
使用WebSocket时,客户端会立即知道该服务器已断开连接。
在长轮询的情况下,需要设置ping_interval和pint_timeout参数(我也找到有关heartbeat_interval和heartbeat_timeout的信息,但我不知道它们与ping_ *有何关系)。
从服务器的角度来看:它不知道客户端已断开连接,并且获取该信息的唯一方法是设置ping_interval和ping_timeout。
关于python - 如何在Flask中处理socket.io断开的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45013247/