【问题标题】:Reconnect websocket/mqtt after client internet disconnection客户端断网后重新连接 websocket/mqtt
【发布时间】:2019-02-12 16:12:33
【问题描述】:

我正在设置一个 MQTT/Websockets 服务器,我的客户端是一个 Flutter 应用程序,它在主屏幕上连接到代理,在其他屏幕上它发送和接收来自代理的消息。我对keepAlive的理解是客户端和服务器应该多久共享一次ping/pong,所以他们确保连接仍然存在。据说,如果我的颤振应用程序连接到主屏幕中的代理,3600/1 小时 keepAlive,并且假设我在其他屏幕上共享和接收消息,如果我断开客户端与互联网的连接 2 分钟,然后重新连接之后,它不会发送/接收消息,也许我对keepAlive的理解不正确。好吧,我将如何构建我的应用程序/服务器以在互联网连接恢复后自动重新连接到互联网。

我也尝试过 On.Disconnect 方法,我注意到它永远不会被调用,即使应用程序仍然认为它连接到代理。 我在标签上提到了 websockets,因为我可以通过 websockets 做 mqtt。

【问题讨论】:

    标签: websocket flutter mqtt


    【解决方案1】:

    我看到没有其他人回复,所以我会尝试(但我也是新手)。

    另外,你看过 Flutter connectivity package 吗?

    从我对 Mqtt 规范的阅读来看,如果 Mqtt 客户端在保持活动期间没有收到到其 PINGREQ 的 PINGRESP,它似乎应该**断开 TCP/IP 连接(即不需要断开连接)。

    我的 Flutter + Mqtt 应用程序每次发送消息时都会检查连接状态,并在需要时重新连接。我不需要检查互联网丢失,但我注意到某些应用程序状态更改时连接丢失。主应用小部件。使用didChangeAppLifecycleState() 通知这些并在需要时发送虚拟消息。

    所以这并不能完全回答你的问题,但我希望它还是有用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 2012-10-12
      相关资源
      最近更新 更多