Ionic 3.x, socket.io и фон / передний план

Я использую Ionic 3.x с socket.io для получения данных в реальном времени. Проблема в том, что если пользователь помещает приложение в фоновый режим и оно остается там более одной минуты, оно теряет соединение с сокетом. Если пользователь затем переключается с фона на передний план, соединение не восстанавливается. Мой вопрос? Как определить, переключается ли приложение с фона на передний план? Я хотел бы сбросить соединение, как только приложение снова выходит на передний план.

То же самое "соединение с потерянным сокетом" возникает, если пользователь теряет свое интернет-соединение. Я решил это, вызвав эту функцию:

resetSocketConnection(token) {
  this.leaveSocketRoom(token);
  this.socket.connect();
  this.joinSocketRoom(token);
}

 leaveSocketRoom(token) {
  this.socket.removeAllListeners(SERVER_SOCKET_CHANNEL_UPDATES);
  this.socket.emit(SERVER_SOCKET_LEAVE_ROOM, SERVER_SOCKET + token);
  this.socket.disconnect();
}

каждый раз, когда пользователь подключается к Интернету. Я сделал это с помощью сети и функции onConnect(). Это работает, и я думаю, что могу сделать то же самое, если приложение выходит на передний план.

Я знаю, что есть этот плагин для фонового режима, но, насколько я понимаю, плагин заставляет приложение всегда работать в фоновом режиме. Я не хочу этого, потому что это излишне нагрузит сервер и батарею пользователей (я полагаю).

Любая помощь приветствуется!: Slight_smile:

0 ответов

Другие вопросы по тегам