Я работаю над приложением чата, используя React native, и WebSocket
все отлично работает в активном режиме, но когда вы нажимаете кнопку «Домой», чтобы перевести приложение в фоновый режим, функция событий WebSocket
onMessage не срабатывает
Хорошо, что WebSocket
соединение все еще установлено, но функция событий не сработала.
Я просто хочу нажать на уведомление при получении сообщения в фоновом режиме.
Я провел исследование и обнаружил, что мне нужно постоянно использовать тихую фоновую звуковую дорожку (некоторые говорили, что это незаконно).
Существует ли законный API для поддержания соединения в фоновом режиме?
Нужно ли заново подключать сокетное соединение в фоновом режиме
Мой код
events = (data) =>{
if(data[0].message){
if(this.state.appState !== 'active'){
console.log('check here') // not working when the app in background mode
PushNotification.localNotification({// not working when the app in background mode
message: data[0].message,
number: 1,
title: 'a new message from: '+data[0].username,
});
}else{
this.setState({messages: data[0]})
}
}
}
socketConnect = () =>{
AsyncStorage.getItem('token').then((token) => {
let connection = new wamp.Connection({ url: 'wss://*******/',
realm: 'realm',
authmethods: ['jwt'],
});
connection.onopen = (session, detalis) => {
session.subscribe('messages', this.events);
};
connection.open();
})
};