在移动应用程序中管理 websockets

Managing websockets within a mobile app

我们正在使用 MDWamp 进行涉及在 websockets 上使用 WAMP 的移动开发项目(使用 crossbar.io 作为 WAMP 路由器)。我们想知道处理应用程序生命周期和 WAMP 连接的最合适方法是什么。我们是否应该在应用程序将控制权让给 iOS 或其他应用程序时关闭 websocket?

如果您不需要它来进行持续的后台更新(如地理定位和类似内容),那么在您的应用空闲时关闭连接是有意义的。 然而!将这种类型的断开连接视为短期断开连接是明智的,因此您可以实施比常规断开连接更有效的重新连接机制。

因此,例如,如果每个新客户端都需要数据库访问权限来进行身份验证,请实施您自己的自定义 WAMP RPC 调用,该调用将宣布这只是短期断开连接。当您知道断开连接的会话很快就会恢复时,您会将其用户详细信息保存在缓存中,因此下次连接和验证时,您无需再次访问数据库。

TL;DR - 你应该断开连接,但要明智地去做。