Поддержание соединения WebSocket в рабочем состоянии (React.ts pwa APK) в спящем режиме ⇐ Android
Поддержание соединения WebSocket в рабочем состоянии (React.ts pwa APK) в спящем режиме
Я работаю над React.ts pwa и создаю APK для устройств Android.
Для этого проекта я реализовал signalR и при получении обновления отправляю пользователю уведомление.
Однако, когда устройство переходит в спящий режим, я теряю соединение с веб-сокетом.
Как мне всегда поддерживать соединение, даже если устройство переходит в спящий режим?
export const SignalRWrapper = ({ Children }: Props) => { константная отправка = useAppDispatch(); const userRedux = useAppSelector((state) => state.user); useEffect(() => { if(Notification.permission === 'по умолчанию') { Notification.requestPermission(); } SignalRConnection.on("tatus", (planningReadDto: PlanningReadDto) => { отправка (updateBooking (планирование)); if(Notification.permission === 'предоставлен' && userRedux.user && isMyTruck(planningReadDto.currentStatus, userRedux.user?.habilitations)) { showNotification(planning.name, PlanningReadDto.currentStatus); } }); SignalRConnection.onclose(()=>{ SignalRConnection.invoke("KeepAlive"); }) setInterval(() => { SignalRConnection.invoke("KeepAlive"); }, 3000); }, [userRedux.user]); функция showNotification (имя: строка, currentStatus: TruckStatus) { navigator.serviceWorker.ready.then((регистрация) => { Registration.showNotification(`${name} : Новый закон`,{ тело: `${name} passe au statut ${getNameStatus[currentStatus]}` }) }) }
Я работаю над React.ts pwa и создаю APK для устройств Android.
Для этого проекта я реализовал signalR и при получении обновления отправляю пользователю уведомление.
Однако, когда устройство переходит в спящий режим, я теряю соединение с веб-сокетом.
Как мне всегда поддерживать соединение, даже если устройство переходит в спящий режим?
export const SignalRWrapper = ({ Children }: Props) => { константная отправка = useAppDispatch(); const userRedux = useAppSelector((state) => state.user); useEffect(() => { if(Notification.permission === 'по умолчанию') { Notification.requestPermission(); } SignalRConnection.on("tatus", (planningReadDto: PlanningReadDto) => { отправка (updateBooking (планирование)); if(Notification.permission === 'предоставлен' && userRedux.user && isMyTruck(planningReadDto.currentStatus, userRedux.user?.habilitations)) { showNotification(planning.name, PlanningReadDto.currentStatus); } }); SignalRConnection.onclose(()=>{ SignalRConnection.invoke("KeepAlive"); }) setInterval(() => { SignalRConnection.invoke("KeepAlive"); }, 3000); }, [userRedux.user]); функция showNotification (имя: строка, currentStatus: TruckStatus) { navigator.serviceWorker.ready.then((регистрация) => { Registration.showNotification(`${name} : Новый закон`,{ тело: `${name} passe au statut ${getNameStatus[currentStatus]}` }) }) }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
React-native с различным поведением в рабочем режиме и режиме разработки.
Гость » » в форуме Android - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Гость
-
-
-
Session.remove() в спящем режиме не удаляет объект, но я не могу его «session.get()»
Anonymous » » в форуме JAVA - 0 Ответы
- 88 Просмотры
-
Последнее сообщение Anonymous
-