gpt4 book ai didi

javascript - HTTP 长轮询 - 超时最佳实践

转载 作者:可可西里 更新时间:2023-11-01 17:00:49 32 4
gpt4 key购买 nike

我使用 Javascript AJAX 和长轮询。尝试为服务器响应超时找到最佳值。

我阅读了很多文档,但找不到关于超时的详细解释。

有人选择 20 秒,其他人选择 30 秒...

我使用图表上的逻辑 HTTP Diagram

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

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

我担心在某些情况下连接会因长时间超时而被第三方断开。

最佳答案

也许是你对英语的掌握是问题,但它是连接的生命周期(连接打开和关闭之间的时间)你需要担心的不仅仅是超时(没有事件的时间长度,之后连接将被终止)。

尽管存在 websockets,但仍然有很多已部署的硬件会丢弃连接不管它认为流量是 HTTP 还是 HTTPS 的事件(有些会寻找不活动)-有时作为设计错误,有时作为对 sloloris 攻击的本土缓解措施。您拥有 3G 和 4G 客户端意味着您可能会在 5 分钟的生命周期内遇到问题。

不幸的是,要知道什么会普遍适用,没有神奇的解决方案。关键是要了解用户的分布范围。如果它们都在您的 LAN 上并直接连接到服务器,那么您应该能够使用一个相对较大的值,但是将持续时间设置为无限制会显示您的应用程序中的任何内存泄漏 - 有时最好现在就刷新无论如何。

假设服务器和客户端之间存在集线器和交换机以外的基础设施,您需要提供一种机制来检测和重新建立断开的连接,而不管时间长短。当你想出如何做到这一点时,然后:

  1. 连接断开只是一个小的性能故障,不会对功能产生重大影响

  2. 然后添加记录丢失连接的功能并由此确定最佳连接时间以消除 (1) 中描述的小问题是微不足道的

关于javascript - HTTP 长轮询 - 超时最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37391096/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com