Я разрабатываю приложение на Ioni c v4,
У меня проблема с чистым сервером WebSocket в Ioni c. Я создаю подачу на одной странице, а затем жду сообщения c. Если я получаю это сообщение, мне нужно перенаправить на другую страницу, где я жду других ответов от сервера websocket.
Проблема в том, что когда я меняю страницу через маршрутизатор, сервер websocket немедленно закрывается. Поэтому я не могу слушать или отправлять сообщения. Я читал несколько сообщений об этом, и там написано: «Да, вот как это работает».
Это правда? Значит, я должен оставаться на одной странице на протяжении всего жизненного цикла веб-сокета?
ОБНОВЛЕНИЕ 2020-05-28:
Клиент создается в websocket.service.ts с помощью
this.wsClient = new Websocket(url,protocols);
Затем эта служба внедряется везде где нам нужно использовать соединение между нашим клиентом и сервером (основной сервер websocket управляется Laravel)
constructor(
public websocketService: WebsocketService,
public ngRouter: Router,
)
Итак, представьте, что на первой странице (или компоненте) эта служба вызывается и соединение устанавливается (без ошибок). На этой первой странице также отправляются и принимаются сообщения с сервера.
this.wsClient.send(JSON.stringify(data));
При получении указанного сообщения c маршрут изменяется
this.ngRouter.navigate(['/station-code']);
В этот момент туннель Websocket немедленно закрывается. Мы можем создать еще один экземпляр на другой странице (или компоненте), это не проблема.
Я просто спрашиваю, нормально ли это поведение, и если какое-либо изменение маршрута в Angualar, React, Vue или обернутом приложении Ioni c, обеспечивающем закрытие соединения.
Спасибо, надеюсь, в этом обновлении будет больше информации