我正在使用 React native 开发聊天应用程序,并且WebSocket
在活动模式下一切正常,但是当您按下主页按钮以使应用程序处于后台模式时,WebSocket
不会触发 onMessage 事件功能
好消息是WebSocket
连接仍处于连接状态,但未触发事件功能。
我只想在后台模式下收到消息时推送通知。
我做了一项研究,发现我需要始终运行无声背景音轨(有人说这是非法的方式)。
是否有合法的 API 可以在后台保持连接活动?
是否需要在后台模式下重新连接socket连接
我的代码
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();
})
};