2016-05-23 94 views
1

我玩JavaScript Ajax和长轮询。 尝试为服务器响应超时查找最佳值。HTTP长轮询 - 超时最佳实践

我读了很多文档,但无法找到超时的详细解释。

有人选择20秒,等30秒......

我用逻辑就像图 HTTP Diagram

如何选择超时更好的价值? 我可以用5分钟吗? 这是否正常吗?

PS:可能的Ajax客户端的互联网连接:RJ-45以太网,WIFI,3G,4G,还具有NAT,代理服务器。

我担心连接可以通过第三方在某些情况下,长超时被丢弃。

回答

2

也许它你的英语掌握这是问题,但(连接打开和关闭之间的时间)的连接它的生命周期,你需要担心超过了超时更多(时间不活动之后,连接将被终止)。

尽管WebSockets的存在,仍然有很多部署的硬件,这将删除连接无论活动(有的将寻找活动)在认为交通HTTP或HTTPS - 有时作为设计过错,有时是作为对sloloris攻击的本土缓解。您拥有3G和4G客户端意味着您可能会在5分钟的使用期限内遇到问题。

不幸的是,没有什么神奇的解决方案来知道什么将普遍工作。关键是要知道用户的分布范围。如果他们都在你的局域网上,并直接连接到服务器,那么你应该能够使用相对较大的值,但是将持续时间设置为无限制会显示应用程序中的任何内存泄漏 - 有时候更好地立即刷新无论如何。

以那里是基础设施比你的服务器和客户端之间的集线器和交换机等的情况下,就需要检测和重新建立被丢弃的连接,无论时间长短的机制。当你已经工作了如何做到这一点,则:

  1. 掉线只是一个小的性能故障,并没有对功能的显著效果

  2. 是微不足道的,然后添加能力记录丢弃的连接,从而确定最佳的连接时间,以消除(1)

+0

同意,在我的情况下,我可以设置超时60秒描述的小问题,如果connecton下降前60秒,客户端必须重新连接,这就是所有。感谢您的解释。 – Dmitry