python - 我应该让长轮询连接保持多长时间?

标签 python http chat tornado long-polling

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

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

最佳答案

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

在我看来,互联网上的实际公共(public)用例不应超过 5 分钟。

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

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

关于python - 我应该让长轮询连接保持多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617049/

相关文章:

Python 打包依赖

Tornado 未正确返回 HTTP 状态消息

http - Tomcat http 没有重定向到 https

node.js - 有关如何为聊天应用程序设计良好架构的建议?

python - 如何获得所有的最大值max函数

Python 对大列表的随机抽样非常慢

python - Django:存储用户偏好

ruby - 使用 Ruby 的 Net :HTTP 在 HTTP header 中保留大小写

ios - Quickblox 简单的聊天应用程序

php - 使用 php、Jquery 的聊天应用程序