我正在为公司产品创建一个Web聊天服务,这是一个本地社交网络,为来自在线用户的大量并发连接提供服务.长轮询与Python上的Tornado一起使用.但是,当有许多不活动的长轮询连接(不接收传入消息)时,我应该关闭其中的一些.
我应该让长时间轮询的连接保持多长时间? 1小时或最多1天?
解决方法:
您必须将长轮询超时调整为适合实际的网络环境,例如,某些adl调制解调器在闲置10分钟后会静默断开连接.一些笔记本电脑可能会移动到另一个无线网络或进入睡眠状态等.
海事组织,互联网上的公共使用案例不应超过5分钟.
如果您可以控制网络或对等节点,则可以考虑更长的超时时间;或如果您有独立的验证来证明客户端仍在等待,例如通过来自同一会话的单独请求.
分析工作负载时,您可能会发现,在达到一定阈值后,超时加倍带来的性能提升很小.通常,该阈值会很小,然后使用该阈值.