Flutter web_socket 断线重连
2023-03-01 本文已影响0人
孤街酒客0911
// 结束时触发
onDone(){
// 可在这里进行重连。
onConnect(); // 重连
}
// 收到Error时触发,cancelOnError:遇到第一个Error时是否取消订阅,默认为false。cancelOnError 为true时,出现onError时,onDone将不会回调
onError(err){
_channel.sink.close();//关闭连接通道
}
// 收到数据时触发
onData(message){
}
@override
void dispose() {
_channel.sink.close(); //关闭连接通道
super.dispose();
}
IOWebSocketChannel_channel;
// 建立连接
void onConnect() {
_channel =IOWebSocketChannel.connect("ws://192.168.43.75:8088/wsresult?${token}");
_channel.sink.add(jsonEncode({"type":"heart"},),); // 发Json数据
_channel.stream.listen(this.onData, onError: onError, onDone: onDone);
}