gpt4 book ai didi

flutter - Socket.io连接仅工作一次

转载 作者:行者123 更新时间:2023-12-03 04:55:45 25 4
gpt4 key购买 nike

我在flutter应用程序中使用this库(socket.io)通过Web套接字进行即时消息传递。

有2个屏幕-HomeChat。从Home屏幕输入表单后,应用程序导航到Chat屏幕,在initState()方法内部,我编写了代码以建立套接字连接:

IO.Socket socket;
void initState() {
socket = IO.io('http://localhost:3000', <String, dynamic>{
'transports': ['websocket'],
'query': {
'timeStamp': new DateTime.now().millisecondsSinceEpoch
}
});

socket.on('connect', (_) {
print("debug: connected");
});
});


该连接在我第一次从 Home导航到 Chat时起作用。但是,如果我导航回到 Home页面,然后返回 Chat,则该连接将不起作用。可能是什么原因?

这是用于导航回 Home页面的代码:
onPressed: () {
socket.destroy();
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (context) => MyHomePage(),
),
(x) => false);
},

在小部件的 dispose()方法内的套接字上未执行任何操作。

最佳答案

这是因为它尝试重用同一套接字来连接到同一主机。解决方案是在连接上使用'force new connection': true

socket = IO.io('http://localhost:3000', <String, dynamic>{
'transports': ['websocket'],
'force new connection': true,
'query': {
'timeStamp': new DateTime.now().millisecondsSinceEpoch
}
});

关于flutter - Socket.io连接仅工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60631185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com