【问题标题】:How long should I let a long-polling connection stay?我应该让长轮询连接保持多长时间?
【发布时间】:2012-03-25 21:35:58
【问题描述】:

我正在为我的公司产品创建一个网络聊天服务,它是一个本地社交网络,为来自在线用户的大量并发连接提供服务。长轮询与 Tornado over Python 一起使用。但是,当有很多不活动的长轮询连接(没有收到传入消息)时,我应该关闭其中的一些。

我应该让长轮询连接保持多长时间? 1 小时还是最多 1 天?

【问题讨论】:

    标签: python http chat tornado long-polling


    【解决方案1】:

    您必须根据实际网络环境调整长轮询超时,例如,一些 adsl 调制解调器会在 10 分钟不活动后静默断开连接。一些笔记本电脑可能会移动到另一个无线网络或进入睡眠状态等。

    IMO,您在互联网上的实际公共用例不应超过 5 分钟。

    如果您可以控制网络或对等点,则可以考虑更长的超时时间;或者如果您有客户仍在等待的独立验证,例如通过来自同一会话的单独请求。

    当您分析您的工作负载时,您可能会发现在某个阈值之后,加倍超时带来的性能提升非常小。通常这个阈值会很小,然后使用它。

    【讨论】:

    • 当连接在超时后断开时,它会重新连接以再次调用长轮询,对吗?关键是不要让它无限期地打开,只是用一个新的连接来回收它?
    猜你喜欢
    • 2011-09-30
    • 2015-08-09
    • 1970-01-01
    • 2023-03-16
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2019-05-17
    相关资源
    最近更新 更多