refactor(im): 对齐文赫电竞消息系统(配对群ID+稳定监听)
This commit is contained in:
35
app.js
35
app.js
@@ -81,6 +81,8 @@ App({
|
||||
xshenfen: 1,
|
||||
|
||||
goEasyConfig: null,
|
||||
chatEnabled: false,
|
||||
groupInfoMap: {},
|
||||
kefuConfig: {
|
||||
link: '',
|
||||
enterpriseId: ''
|
||||
@@ -152,6 +154,7 @@ App({
|
||||
pageState: {
|
||||
currentPage: '',
|
||||
isInChatPage: false,
|
||||
isInGroupChat: false,
|
||||
currentChatId: '',
|
||||
lastPageUpdate: 0
|
||||
},
|
||||
@@ -222,13 +225,11 @@ App({
|
||||
this.emitEvent('staffContextChanged', {});
|
||||
}
|
||||
|
||||
// ⑤ 建立连接
|
||||
const saved = this.getSavedConnection();
|
||||
console.log('【启动】缓存身份:', saved ? saved.identityType : '无',
|
||||
'userId:', saved ? saved.userId : '无');
|
||||
// ⑤ 建立连接(文赫式:全局监听,不反复 disconnect)
|
||||
setTimeout(() => {
|
||||
if (this.startImWhenReady) this.startImWhenReady();
|
||||
else if (this.ensureConnection) this.ensureConnection();
|
||||
if (this.globalData.chatEnabled && this.ensureConnection) {
|
||||
this.ensureConnection();
|
||||
}
|
||||
}, 300);
|
||||
|
||||
// ⑥ 获取远程配置
|
||||
@@ -243,8 +244,9 @@ App({
|
||||
} catch (e) {}
|
||||
this.initGoEasyWithConfig();
|
||||
this.initCurrentUser();
|
||||
if (this.startImWhenReady) this.startImWhenReady();
|
||||
else if (this.connectForCurrentRole) this.connectForCurrentRole();
|
||||
if (this.globalData.chatEnabled && this.ensureConnection) {
|
||||
this.ensureConnection();
|
||||
}
|
||||
console.log('远程配置更新完成');
|
||||
})
|
||||
.catch(err => {
|
||||
@@ -252,10 +254,20 @@ App({
|
||||
});
|
||||
},
|
||||
|
||||
/** 从后台切回前台时再次向后端校验 */
|
||||
/** 从后台切回前台时再次向后端校验,并维持 IM 连接 */
|
||||
async onShow() {
|
||||
if (!wx.getStorageSync('token')) return;
|
||||
await ensurePhoneAuth({ redirect: true });
|
||||
if (this.globalData.chatEnabled && typeof this.ensureConnection === 'function') {
|
||||
this.globalData.goEasyConnection.autoReconnect = true;
|
||||
this.ensureConnection();
|
||||
if (typeof this.syncConnectionStatus === 'function') {
|
||||
setTimeout(() => this.syncConnectionStatus(), 800);
|
||||
}
|
||||
if (typeof this.loadConversations === 'function') {
|
||||
setTimeout(() => this.loadConversations(), 300);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 连接管理方法
|
||||
@@ -397,9 +409,10 @@ App({
|
||||
modules: ['im', 'pubsub']
|
||||
});
|
||||
wx.GoEasy = GoEasy;
|
||||
this.globalData.chatEnabled = true;
|
||||
console.log('GoEasy 初始化成功');
|
||||
if (this.startImWhenReady && wx.getStorageSync('uid')) {
|
||||
setTimeout(() => this.startImWhenReady(), 100);
|
||||
if (this.ensureConnection && wx.getStorageSync('uid')) {
|
||||
setTimeout(() => this.ensureConnection(), 100);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('GoEasy 初始化失败:', error);
|
||||
|
||||
Reference in New Issue
Block a user