Flutter)我想在socket断开时自动重新连接

Posted

技术标签:

【中文标题】Flutter)我想在socket断开时自动重新连接【英文标题】:Flutter) I want to automatically reconnect when the socket is disconnected 【发布时间】:2021-02-25 02:09:52 【问题描述】:

我正在构建一个 Flutter 应用。套接字通信是通过“web_socket_channel”包实现的。我想实现下面的两个功能。

套接字断线检测 检测到套接字断开时自动重新连接尝试

很遗憾,“web_socket_channel”包不提供这些功能。 你能给我一些关于如何实现它的建议吗?

【问题讨论】:

没有重新连接 TCP 套接字这样的事情。您必须关闭它并创建一个新的。 【参考方案1】:

你可以这样做

    createSocket()
          IOWebSocketChannel channel;
          try 
            channel = IOWebSocketChannel.connect('ws://...');
            channel.stream.listen((data) async 
              //Do something here
            ).onDone(() 
              print("Socket Done");
              createSocket();
            );
           catch (ex) 
            print("SOCKET ERROR");
            print(ex);
            createSocket();
          
     

【讨论】:

不要使用递归作为一种迭代形式。

以上是关于Flutter)我想在socket断开时自动重新连接的主要内容,如果未能解决你的问题,请参考以下文章

web3.js socket心跳重连,WebsocketProvider

修改网络断开时receiver重新连接等待时长

Flutter Firebase 消息传递 - 应用打开时未显示推送通知

电脑连接无线网运行半小时左右自动断网,只要重新启动能恢复网络连接、求大神分析原因及解决方案!拜谢

蓝牙设备连接/断开时广播?

java如何检测telnet服务器是不是断开