如何在Flask中处理socket.io断开的连接?

时间:2017-07-10 13:23:38

标签: python sockets flask socket.io

我有一个非常简单的Python(Flask socket.io)应用程序,它作为服务器和另一个用AngularJS编写的应用程序是客户端。

为了处理连接和断开连接的客户端,我使用尊重:

@socketio.on('connect')
def on_connect():
    print("Client connected")

@socketio.on('disconnect')
def on_disconnect():
    print("Client disconnected")

当客户端连接到我的应用程序时,我会收到有关它的信息,如果客户端断开连接(例如由于网络问题),我将无法获得任何信息。

处理客户端意外断开连接的情况的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

有两种类型的连接:使用long-pooling或WebSocket。

当您使用WebSocket时,客户端立即知道服务器已断开连接。 在长轮询的情况下,需要设置ping_interval和pint_timeout参数(我也找到有关heartbeat_interval和heartbeat_timeout的信息,但我不知道它们与ping _ *的关系)。

从服务器角度来看:它不知道客户端已断开连接,获取该信息的唯一方法是设置ping_interval和ping_timeout。