Отключение веб-сокета, когда приложение работает в фоновом режиме - PullRequest
0 голосов
/ 06 января 2020

Я создаю приложение "Uber like" и использую веб-сокет, чтобы следить за драйвером (чтобы узнать его местоположение). В течение 1 ~ 10 минут (это варьируется) и в фоновом режиме, соединение прерывается, я предполагаю, что это не websocket, событие onclose даже ничего не возвращает. Как будто что-то принудительно закрывает приложение или что-то подобное. Кто-нибудь знает, что происходит? Я использую Expo.

Функция веб-сокета: (я использую пересоединение веб-сокета)

 connect = () => {

var URL = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXxx';

var token = 'XXXXXXXXXXXXXXXXXXXXXXX';

var ws = new ReconnectingWebSocket(URL,token, { debug: true, reconnectInterval: 3000 });

ws.onopen = () => {

console.log('Entered!');

}

ws.onclose = () => {

console.log('Left!')

}

}

"Введено!" печатается "Левый!" нет.

1 Ответ

0 голосов
/ 07 января 2020

Операционная система убивает ваше приложение после некоторого периода в фоновом режиме. Вы можете использовать Безголовый JS (только Android) для периодического запуска некоторых фоновых задач (хотя не может поддерживать активное соединение с веб-сокетом) или таких вещей, как реагировать-родной-задание-фон или response-native-background-fetch , которые работают как на iOS, так и на Android, но не могут запускать задачи чаще, чем один раз в 15 минут. Насколько мне известно, единственный способ достичь того, чего вы хотите, - это написать отдельные собственные модули для Android и iOS, соответствующие вашим потребностям (и это все еще не гарантировано, поскольку операционные системы в настоящее время стремятся уничтожить любую разрядку батареи). фоновые приложения). Рассмотрите возможность применения режима переднего плана для вашего приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...