Flutter socket_io_client dispose后没法重新连接
Flutter 页面销毁的时候调用this.socket.disconnect(); 会发现下次进来后没法重新连接了。
代码如下:
void initState() {
print("2222");
super.initState();
//注意分组
this.socket = IO.io('http://192.168.0.10:3000?roomid=1', <String, dynamic>{
'transports': ['websocket']
});
print(this.socket);
this.socket.on('connect', (_) {
print('connect..');
});
this.socket.on('toClient', (data) {
setState(() {
this.messageList.add({
"server":true,
"title":data["title"],
"url":data["url"]
});
});
//改变滚动条的位置
this
._scrollController
.jumpTo(_scrollController.position.maxScrollExtent + 80);
});
}
void dispose() {
// TODO: implement dispose
super.dispose();
this.socket.disconnect();
}
如果想让Flutter socket_io_client dispose后重新连接的话我们需要在建立连接的时候配置'forceNew':true
这个参数
代码如下:
this.socket = IO.io('http://192.168.0.10:3000?roomid=1', <String, dynamic>{
'transports': ['websocket'] ,
'forceNew':true
});
这样的话当 socket_io_client dispose后就可以重新连接了