Websocket останавливается при изменении страницы в Ioni c 4 - PullRequest
0 голосов
/ 27 мая 2020

Я разрабатываю приложение на 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, обеспечивающем закрытие соединения.

Спасибо, надеюсь, в этом обновлении будет больше информации

...