首页 > 解决方案 > 重新连接间隔

问题描述

我正在寻找处理服务器重启的最佳实践。具体来说,我将股票价格推送给使用 websockets 进行日间交易模拟 web 应用程序的用户。我有 10k 个并发用户。为了确保响应式用户体验,我在触发 onclose 事件时重新连接到 websocket。随着我们用户群的增长,我们不得不扩展我们的硬件。除了更好的硬件,我们在重新连接之前实现了随机延迟。这样做的目的是在服务器每晚重新启动时分散握手的涌入(持续部署)。然而,我们的一些用户的互联网很差(isp 和/或 wifi)。他们的联系不断下降。对于这些用户,我希望他们立即重新连接。这个问题有没有上述权衡的解决方案?

标签: websocketservercontinuous-deploymentreconnect

解决方案


问题是要求主观回应,这是我的:)

  • 区分客户端断开连接和服务器关闭:这可以通过在 websocket 上发送关闭消息来实现,以便活动客户端可以准备并随机延迟重新连接。因此,在没有正确关闭广播的情况下遇到onclose事件的客户端将能够尽快重新连接。这意味着需要修改客户端应用程序以解决此特殊关闭事件。

  • 处理握手负载:一些 Web 服务器可以将传入连接作为异步并行事件队列处理,因此最多 X 个连接将同时初始化(并行),而其他连接将在队列中等待,直到轮到它们。这允许保护服务器性能,因此 websocket 握手将根据服务器的真实处理能力自动延迟。当然,这意味着 Web 服务器技术的改变,并且取决于您的用例。


推荐阅读