我有一个非常简单的Python(Flask socket.io)应用程序,它作为服务器和另一个用AngularJS编写的应用程序是客户端。
为了处理连接和断开连接的客户端,我使用尊重:
@socketio.on('connect')
def on_connect():
print("Client connected")
@socketio.on('disconnect')
def on_disconnect():
print("Client disconnected")
当客户端连接到我的应用程序时,我会收到有关它的信息,如果客户端断开连接(例如由于网络问题),我将无法获得任何信息。
处理客户端意外断开连接的情况的正确方法是什么?
答案 0 :(得分:0)
有两种类型的连接:使用long-pooling或WebSocket。
当您使用WebSocket时,客户端立即知道服务器已断开连接。 在长轮询的情况下,需要设置ping_interval和pint_timeout参数(我也找到有关heartbeat_interval和heartbeat_timeout的信息,但我不知道它们与ping _ *的关系)。
从服务器角度来看:它不知道客户端已断开连接,获取该信息的唯一方法是设置ping_interval和ping_timeout。