在Flutter中,我想听一下websocket disconnect事件,如何实现呢?当应用程序进入后台时,websocket连接将丢弃,我仍然没有找到让它继续在后台运行的方法(有没有人有解决方案?),所以我必须检测websocket连接是否丢失或者是什么,所以我丢失连接时可以重新连接。如果有人知道如何实现这一点,请帮忙。
您可以通过实现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');
},
);
希望有所帮助。
关于SO和网络的其他答案表明你不能只在后台保持套接字打开(这似乎是合理的,你将保持开放的网络连接,可能会影响电池寿命)。根据您的使用情况,您可能更好地查看推送通知或检查计划的内容。