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: