@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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aochuang/client-sdk",
3
- "version": "1.0.365",
3
+ "version": "1.0.366",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -272,14 +272,7 @@ export default class ClientChatSession {
272
272
  // 这里需要轮询从后端获取会话,后端会话更新和创建是异步的,所以要多轮训请求几次
273
273
  let pollRequest = this.pollRequestMap[sessionId]
274
274
  if (pollRequest && pollRequest.ps) {
275
- const taskAdded = this._addGetSessionSerializeTask(pollRequest, serializeMethod, taskOptions)
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
- this._addGetSessionLog('会话轮询返回空', {
295
- sessionId,
296
- requestCount: pollRequest.requestCount
297
- })
287
+ pollRequest.emptyResponseCount += 1
298
288
  }
299
289
  }, (error) => {
300
- this._addGetSessionLog('会话轮询请求异常', {
301
- sessionId,
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
- processedMessageIds: context.processedMessageIds,
350
- skippedMessageIds: context.skippedMessageIds,
351
- unreadMessageIds: context.unreadMessageIds,
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.socket.addLog({
422
- group: 'client-chat-message:onAddMessageSuccess',
423
- content: {
424
- title: '未获取到会话,开始从服务端获取',
425
- data: {
426
- sessionId,
427
- accountId,
428
- wechatFriendId: data.wechatFriendId
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
- }).then(null, (error) => {
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.socket.addLog({
566
- group: 'client-chat-message:onAddMessageSuccess',
567
- content: {
568
- title: '未获取到会话,开始从服务端获取',
569
- data: {
570
- sessionId,
571
- accountId,
572
- wechatChatroomId: data.wechatChatroomId
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
- }).then(null, (error) => {
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.