1

在断开连接时清理是否足够?如果浏览器在发送显式断开连接之前消失会怎样?

服务器端清理的推荐模式是什么,以便绑定到连接的资源不会泄漏(例如命名空间)?

(使用 gevent-socketio,如果重要的话)

4

1 回答 1

1

如果您使用 WebSockets 作为传输,它会在浏览器关闭时自动断开套接字。例如,如果您使用 xhr-polling,它不会自动断开连接(谈到 gevent-socketio)。

我使用 xhr-polling 的方法是:

  1. 在数据库中使用登录的用户 ID 保存套接字会话 ID
  2. 在下次用户登录时检测是否存在这样的记录
  3. 使用记录中存储的会话 ID 断开未使用的套接字,因为新用户登录会生成新的套接字

这不是快速的解决方案,因为在用户执行新登录之前,您可能连接了未使用的套接字,但它会在用户登录时执行一种清理。

这篇文章可能暗示了比我的解决方案更有创意的东西:http: //flask.pocoo.org/snippets/71/

于 2013-09-26T11:56:41.160 回答