@aochuang/client-sdk 1.0.365 → 1.0.366
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -272,14 +272,7 @@ export default class ClientChatSession {
|
|
|
272
272
|
// 这里需要轮询从后端获取会话,后端会话更新和创建是异步的,所以要多轮训请求几次
|
|
273
273
|
let pollRequest = this.pollRequestMap[sessionId]
|
|
274
274
|
if (pollRequest && pollRequest.ps) {
|
|
275
|
-
|
|
276
|
-
this._addGetSessionLog('复用会话轮询', {
|
|
277
|
-
sessionId,
|
|
278
|
-
messageId: taskOptions.messageId,
|
|
279
|
-
wechatTime: taskOptions.wechatTime,
|
|
280
|
-
taskAdded,
|
|
281
|
-
taskCount: pollRequest.serializeTasks.length
|
|
282
|
-
})
|
|
275
|
+
this._addGetSessionSerializeTask(pollRequest, serializeMethod, taskOptions)
|
|
283
276
|
return pollRequest.ps
|
|
284
277
|
}
|
|
285
278
|
|
|
@@ -291,23 +284,20 @@ export default class ClientChatSession {
|
|
|
291
284
|
if (rs.data) {
|
|
292
285
|
done(rs)
|
|
293
286
|
} else {
|
|
294
|
-
|
|
295
|
-
sessionId,
|
|
296
|
-
requestCount: pollRequest.requestCount
|
|
297
|
-
})
|
|
287
|
+
pollRequest.emptyResponseCount += 1
|
|
298
288
|
}
|
|
299
289
|
}, (error) => {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
requestCount: pollRequest.requestCount,
|
|
303
|
-
error: error && (error.message || error.errMsg || error.toString && error.toString()) || error
|
|
304
|
-
})
|
|
290
|
+
pollRequest.requestErrorCount += 1
|
|
291
|
+
pollRequest.lastRequestError = error && (error.message || error.errMsg || error.toString && error.toString()) || error
|
|
305
292
|
return Promise.reject(error)
|
|
306
293
|
})
|
|
307
294
|
})
|
|
308
295
|
pollRequest.serializeTasks = []
|
|
309
296
|
pollRequest.serializeTaskMap = {}
|
|
310
297
|
pollRequest.requestCount = 0
|
|
298
|
+
pollRequest.emptyResponseCount = 0
|
|
299
|
+
pollRequest.requestErrorCount = 0
|
|
300
|
+
pollRequest.lastRequestError = null
|
|
311
301
|
pollRequest.startedAt = Date.now()
|
|
312
302
|
this._addGetSessionSerializeTask(pollRequest, serializeMethod, taskOptions)
|
|
313
303
|
this.pollRequestMap[sessionId] = pollRequest
|
|
@@ -341,14 +331,16 @@ export default class ClientChatSession {
|
|
|
341
331
|
this._addGetSessionLog('会话轮询合并完成', {
|
|
342
332
|
sessionId,
|
|
343
333
|
requestCount: pollRequest.requestCount,
|
|
334
|
+
emptyResponseCount: pollRequest.emptyResponseCount,
|
|
335
|
+
requestErrorCount: pollRequest.requestErrorCount,
|
|
344
336
|
duration: Date.now() - pollRequest.startedAt,
|
|
345
337
|
baseLastMsgTime: context.baseLastMsgTime,
|
|
346
338
|
lastMsgTime: rs.data.lastMsgTime,
|
|
347
339
|
lastMsgId: rs.data.lastMsgId,
|
|
348
340
|
unreadMsgCount: rs.data.unreadMsgCount,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
341
|
+
processedMessageCount: context.processedMessageIds.length,
|
|
342
|
+
skippedMessageCount: context.skippedMessageIds.length,
|
|
343
|
+
unreadMessageCount: context.unreadMessageIds.length,
|
|
352
344
|
hasSessionMap: !!this.sessionMap[sessionId],
|
|
353
345
|
hasAllSessionGroup: !!this._getSessionBySessionGroup(sessionId, ALL_WECHAT_ACCOUNT_ID),
|
|
354
346
|
hasAccountSessionGroup: !!this._getSessionBySessionGroup(sessionId, wechatAccountId)
|
|
@@ -358,8 +350,11 @@ export default class ClientChatSession {
|
|
|
358
350
|
this._addGetSessionLog('会话轮询失败', {
|
|
359
351
|
sessionId,
|
|
360
352
|
requestCount: pollRequest.requestCount,
|
|
353
|
+
emptyResponseCount: pollRequest.emptyResponseCount,
|
|
354
|
+
requestErrorCount: pollRequest.requestErrorCount,
|
|
361
355
|
duration: Date.now() - pollRequest.startedAt,
|
|
362
|
-
error: error && (error.message || error.errMsg || error.toString && error.toString()) || error
|
|
356
|
+
error: error && (error.message || error.errMsg || error.toString && error.toString()) || error,
|
|
357
|
+
lastRequestError: pollRequest.lastRequestError
|
|
363
358
|
})
|
|
364
359
|
return Promise.reject(error)
|
|
365
360
|
}).finally(() => {
|
|
@@ -418,17 +418,22 @@ class ClientChat {
|
|
|
418
418
|
}
|
|
419
419
|
const localSession = this.session.findSession(({ session }) => session.conversationId === sessionId)
|
|
420
420
|
if (!localSession) {
|
|
421
|
-
this.
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
421
|
+
if (!this.session.pollRequestMap[sessionId]) {
|
|
422
|
+
this.socket.addLog({
|
|
423
|
+
group: 'client-chat-message:onAddMessageSuccess',
|
|
424
|
+
content: {
|
|
425
|
+
title: '未获取到会话,开始从服务端获取',
|
|
426
|
+
data: {
|
|
427
|
+
sessionId,
|
|
428
|
+
accountId,
|
|
429
|
+
wechatFriendId: data.wechatFriendId,
|
|
430
|
+
wechatAccountId: data.wechatAccountId,
|
|
431
|
+
messageId: data.id,
|
|
432
|
+
wechatTime: data.wechatTime
|
|
433
|
+
}
|
|
429
434
|
}
|
|
430
|
-
}
|
|
431
|
-
}
|
|
435
|
+
})
|
|
436
|
+
}
|
|
432
437
|
return this.session.getSession(sessionId, (rs, context) => {
|
|
433
438
|
if (rs && rs.data) {
|
|
434
439
|
const isAfterServerMessage = data.wechatTime > context.baseLastMsgTime
|
|
@@ -455,20 +460,7 @@ class ClientChat {
|
|
|
455
460
|
}, {
|
|
456
461
|
messageId: data.id,
|
|
457
462
|
wechatTime: data.wechatTime
|
|
458
|
-
}).
|
|
459
|
-
this.socket.addLog({
|
|
460
|
-
group: 'client-chat-message:onAddMessageSuccess',
|
|
461
|
-
content: {
|
|
462
|
-
title: '未获取到会话,从服务端获取失败',
|
|
463
|
-
data: {
|
|
464
|
-
error: error && (error.message || error.errMsg || error.toString && error.toString()) || error,
|
|
465
|
-
sessionId,
|
|
466
|
-
accountId,
|
|
467
|
-
wechatFriendId: data.wechatFriendId
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
})
|
|
471
|
-
})
|
|
463
|
+
}).catch(() => {})
|
|
472
464
|
} else {
|
|
473
465
|
this.session.updateSession(sessionId, ({ session }) => {
|
|
474
466
|
// listChange/getSession may already include this message in unreadMsgCount.
|
|
@@ -562,17 +554,22 @@ class ClientChat {
|
|
|
562
554
|
// 更新会话未读消息数量
|
|
563
555
|
const localSession = this.session.findSession(({ session }) => session.conversationId === sessionId)
|
|
564
556
|
if (!localSession) {
|
|
565
|
-
this.
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
557
|
+
if (!this.session.pollRequestMap[sessionId]) {
|
|
558
|
+
this.socket.addLog({
|
|
559
|
+
group: 'client-chat-message:onAddMessageSuccess',
|
|
560
|
+
content: {
|
|
561
|
+
title: '未获取到会话,开始从服务端获取',
|
|
562
|
+
data: {
|
|
563
|
+
sessionId,
|
|
564
|
+
accountId,
|
|
565
|
+
wechatChatroomId: data.wechatChatroomId,
|
|
566
|
+
wechatAccountId: data.wechatAccountId,
|
|
567
|
+
messageId: data.id,
|
|
568
|
+
wechatTime: data.wechatTime
|
|
569
|
+
}
|
|
573
570
|
}
|
|
574
|
-
}
|
|
575
|
-
}
|
|
571
|
+
})
|
|
572
|
+
}
|
|
576
573
|
return this.session.getSession(sessionId, (rs, context) => {
|
|
577
574
|
if (rs && rs.data) {
|
|
578
575
|
const isAfterServerMessage = data.wechatTime > context.baseLastMsgTime
|
|
@@ -602,20 +599,7 @@ class ClientChat {
|
|
|
602
599
|
}, {
|
|
603
600
|
messageId: data.id,
|
|
604
601
|
wechatTime: data.wechatTime
|
|
605
|
-
}).
|
|
606
|
-
this.socket.addLog({
|
|
607
|
-
group: 'client-chat-message:onAddMessageSuccess',
|
|
608
|
-
content: {
|
|
609
|
-
title: '未获取到会话,从服务端获取失败',
|
|
610
|
-
data: {
|
|
611
|
-
error: error && (error.message || error.errMsg || error.toString && error.toString()) || error,
|
|
612
|
-
sessionId,
|
|
613
|
-
accountId,
|
|
614
|
-
wechatChatroomId: data.wechatChatroomId
|
|
615
|
-
}
|
|
616
|
-
}
|
|
617
|
-
})
|
|
618
|
-
})
|
|
602
|
+
}).catch(() => {})
|
|
619
603
|
} else {
|
|
620
604
|
this.session.updateSession(sessionId, ({ session }) => {
|
|
621
605
|
// listChange/getSession may already include this message in unreadMsgCount.
|