首页 > 解决方案 > 回收 Ably 实时连接

问题描述

我遇到了一个奇怪的问题。在我们的应用程序(基于 React-native)中,我们托管了 70 个并发客户端,但监控页面中的峰值显示 380 个连接。我假设客户端可能退出并返回或以某种方式重新加载应用程序,因此 Ably 连接再次重新生成,因此峰值增加。

现在的问题是:有什么方法可以强制 Ably 断开所有未使用的连接,从而降低峰值?(可能来自后端)

谢谢。

标签: node.jsably-realtime

解决方案


默认情况下,连接将保持活动状态,直到显式关闭(使用connection.close()),或在连接意外断开两分钟后恢复连接状态

浏览器环境中的最新版本 ably-js 会在页面重新加载时自动关闭连接(即,closeOnUnload客户端选项默认为 true)——这只是connection.close()添加到beforeunload处理程序中。问题是在不使用该事件的 React Native 环境中不会做任何事情。

因此,您可能只需要使用 React Native 应用程序生命周期事件主动管理您的 Ably 连接。如果您不希望它在应用程序处于后台时保持活动状态,则在应用程序处于后台的处理程序中(根据 React Native AppState 事件),关闭 Ably 连接。然后在应用程序再次处于活动状态时重新打开它(调用connect())。

由于其他可能的原因,您的峰值连接数可能高于预期,请参阅为什么我的峰值连接数高于预期?以及Ably 如何计算峰值连接数?.


推荐阅读