Я использую эту библиотеку (socket.io) в своем приложении для мгновенного обмена сообщениями с использованием веб-сокетов.
Есть 2 экрана - Home
и Chat
. После ввода формы с экрана Home
приложение переходит на экран Chat
, в методе initState()
которого я написал код для установки sh соединения сокета:
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()
виджета не выполняется никаких действий .