颤动的websocket断开听力

时间:2018-06-03 03:26:49

标签: websocket dart flutter

在Flutter中,我想听一下websocket disconnect事件,如何实现呢? 当应用程序转到后台时,websocket连接将会丢失,我仍然没有找到让它继续在后台运行的方法(有没有人有解决方案?),所以我必须检测websocket连接是否是丢失或什么的,这样我可以在连接丢失时重新连接。 如果有人知道如何实现这一点,请帮助。

2 个答案:

答案 0 :(得分:0)

围绕SO和网络的其他答案表明,您不能在后台保持套接字打开(这似乎是合理的,您可以保持开放的网络连接,这可能会影响电池寿命)。根据您的使用情况,您可能更好地查看推送通知或检查计划的内容。

答案 1 :(得分:0)

您可以通过实施onDone回调来确定websocket是否关闭。请参见下面的示例:

      _channel = IOWebSocketChannel.connect(
        'ws://yourserver.com:port',
      );

      ///
      /// Start listening to new notifications / messages
      ///
      _channel.stream.listen(
        (dynamic message) {
          debugPrint('message $message');
        },
        onDone: () {
          debugPrint('ws channel closed');
        },
        onError: (error) {
          debugPrint('ws error $error');
        },
      );

希望有帮助。