我应该多长时间留一个长轮询连接?

时间:2012-03-08 11:37:38

标签: python http chat tornado long-polling

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

我应该让长轮询连接停留多长时间? 1小时或最多1天?

1 个答案:

答案 0 :(得分:3)

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

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

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

分析工作负载时,您可能会发现在超过一定阈值后,超时超时会带来非常小的性能提升。通常该阈值会非常小,然后使用它。