Socket.IO:服务器端清理的推荐模式是什么?

时间:2013-02-02 03:00:41

标签: socket.io gevent-socketio

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

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

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

1 个答案:

答案 0 :(得分:1)

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

使用xhr-polling时的方法是:

  1. 使用数据库
  2. 中的登录用户ID保存套接字会话ID
  3. 在下次用户登录时检测是否存在此类记录
  4. 使用记录中存储的会话ID来断开未使用的套接字,因为新用户登录会生成新的套接字
  5. 这不是快速解决方案,因为在用户执行新登录之前您可能连接了未使用的套接字,但是当用户登录时它会执行一种清理。

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