@tencentcloud/sdk-mcp 1.6.7 → 1.7.0
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/CHANGELOG.md +25 -0
- package/README.md +54 -35
- package/knowledge/build-index.js +32 -5
- package/knowledge/chunker.js +82 -14
- package/knowledge/chunking-policy.js +100 -0
- package/knowledge/content-loader.js +3 -1
- package/knowledge/frontmatter-meta.js +167 -0
- package/knowledge/path-meta.js +28 -6
- package/knowledge/search/exact-lookup.js +26 -123
- package/knowledge/search/filter-pool.js +17 -26
- package/knowledge/search/framework-fallback.js +22 -0
- package/knowledge/search/intent-router.js +13 -0
- package/knowledge/search/query-normalizer.js +129 -0
- package/knowledge/search/search-core.js +391 -0
- package/knowledge/search/search-knowledge.js +351 -323
- package/knowledge/search/search-message.js +87 -0
- package/knowledge/search/search-pass.js +428 -0
- package/knowledge/search/search-types.js +1 -0
- package/knowledge/search/url-row-scorer.js +258 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/_schema/query-normalization.yaml +9 -0
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +0 -14
- package/resource/integration/callkit/preset/flutter/integration.md +0 -9
- package/resource/integration/callkit/preset/ios/integration.md +2 -14
- package/resource/integration/callkit/preset/react/integration.md +0 -21
- package/resource/integration/callkit/preset/vue/integration.md +0 -27
- package/resource/integration/chat/preset/android/integration.md +3 -10
- package/resource/integration/chat/preset/flutter/integration.md +12 -13
- package/resource/integration/chat/preset/ios/integration.md +9 -16
- package/resource/integration/chat/preset/react/integration.md +1 -9
- package/resource/integration/chat/preset/uni-app/integration.md +0 -9
- package/resource/integration/chat/preset/vue/integration.md +3 -13
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +0 -4
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +8 -21
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +0 -1
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +0 -5
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +0 -4
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +0 -9
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +1 -5
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +38 -147
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +1 -6
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +432 -286
- package/resource/integration/roomkit/preset/vue/integration.md +11 -24
- package/resource/knowledge/callkit/best-practice/callkit-miniprogram/uniapp-shrink.md +64 -0
- package/resource/knowledge/callkit/best-practice/common/call-autoplay-blocked.md +81 -0
- package/resource/knowledge/callkit/best-practice/common/call-message-in-chat.md +84 -0
- package/resource/knowledge/callkit/best-practice/common/call-vs-calls.md +114 -0
- package/resource/knowledge/callkit/best-practice/common/callengine-call-flow.md +128 -0
- package/resource/knowledge/callkit/best-practice/common/callengine-log-level.md +72 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-get-engine-instance.md +87 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-get-roomid.md +83 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-limitations.md +37 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-user-register-and-kicked.md +103 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +1 -20
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -12
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +1 -12
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +0 -19
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -17
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -12
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +0 -1
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -15
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -15
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +0 -1
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +0 -1
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +0 -1
- package/resource/knowledge/callkit/faq/android.md +5 -15
- package/resource/knowledge/callkit/faq/common.md +0 -1
- package/resource/knowledge/callkit/faq/ios.md +1 -4
- package/resource/knowledge/callkit/faq/uniapp-app.md +0 -2
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +0 -5
- package/resource/knowledge/callkit/faq/web.md +1 -5
- package/resource/knowledge/callkit/preset/android/api.md +0 -6
- package/resource/knowledge/callkit/preset/ios/api.md +0 -4
- package/resource/knowledge/callkit/preset/miniprogram/api.md +0 -2
- package/resource/knowledge/callkit/preset/react/api.md +3 -154
- package/resource/knowledge/callkit/preset/vue/api.md +3 -42
- package/resource/knowledge/chat/best-practice/common/avchatroom-message-loss-diagnosis.md +71 -0
- package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md +67 -0
- package/resource/knowledge/chat/best-practice/common/image-message-url-lifecycle.md +63 -0
- package/resource/knowledge/chat/best-practice/common/login-repeat-2025-diagnosis.md +65 -0
- package/resource/knowledge/chat/best-practice/common/message-read-report-and-receipt.md +72 -0
- package/resource/knowledge/chat/best-practice/common/message-receive-event.md +70 -0
- package/resource/knowledge/chat/best-practice/common/message-risk-error-and-render.md +69 -0
- package/resource/knowledge/chat/best-practice/common/message-unread-count.md +71 -0
- package/resource/knowledge/chat/best-practice/miniprogram/audio-message-send.md +118 -0
- package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +67 -0
- package/resource/knowledge/chat/best-practice/miniprogram/media-upload-fail-diagnosis.md +68 -0
- package/resource/knowledge/chat/best-practice/web/audio-message-send.md +123 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/android/features/contact-list.md +0 -5
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -9
- package/resource/knowledge/chat/preset/android/features/language.md +1 -11
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -8
- package/resource/knowledge/chat/preset/android/features/message-list.md +1 -10
- package/resource/knowledge/chat/preset/android/features/search.md +0 -7
- package/resource/knowledge/chat/preset/android/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/android-view/integration.md +3 -5
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +1 -6
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +1 -9
- package/resource/knowledge/chat/preset/flutter/features/language.md +0 -3
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +1 -8
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -10
- package/resource/knowledge/chat/preset/flutter/features/search.md +0 -7
- package/resource/knowledge/chat/preset/flutter/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +1 -8
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -9
- package/resource/knowledge/chat/preset/ios/features/language.md +0 -11
- package/resource/knowledge/chat/preset/ios/features/message-input.md +1 -8
- package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -10
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -5
- package/resource/knowledge/chat/preset/ios/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +5 -17
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -2
- package/resource/knowledge/chat/preset/react/features/contact-list.md +0 -23
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +2 -11
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +2 -23
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +0 -5
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -3
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -5
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +3 -9
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +0 -3
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +2 -13
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +2 -5
- package/resource/knowledge/chat/preset/vue/features/conversation-search.md +1 -0
- package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -4
- package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -4
- package/resource/knowledge/chat/preset/vue/features/search.md +4 -1
- package/resource/knowledge/chat/preset/vue/features/theme.md +4 -6
- package/resource/knowledge/chat/urls/sdk/web.md +1 -1
- package/resource/knowledge/livekit/best-practice/android/voice-room-anchor-start.md +124 -0
- package/resource/knowledge/livekit/best-practice/common/admin-take-seat.md +73 -0
- package/resource/knowledge/livekit/best-practice/common/audience-leave-live.md +81 -0
- package/resource/knowledge/livekit/best-practice/common/voice-room-no-audio-troubleshoot.md +100 -0
- package/resource/knowledge/livekit/best-practice/common/voice-room-seat-list-change.md +65 -0
- package/resource/knowledge/livekit/best-practice/flutter/voice-room-anchor-start.md +126 -0
- package/resource/knowledge/livekit/best-practice/ios/voice-room-anchor-start.md +130 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/audio-effect.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/android/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/android/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/flutter/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +3 -7
- package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audio-effect.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/ios/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audio-effect.md +1 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/gift.md +4 -8
- package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/android/integration.md +0 -7
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -7
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +0 -7
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +0 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -3
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -13
- package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +5 -5
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +18 -21
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -11
- package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +8 -8
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +1 -4
- package/resource/knowledge/livekit/faq/error-code.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -5
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -3
- package/resource/knowledge/push/api-reference/donut.md +1 -6
- package/resource/knowledge/push/api-reference/harmonyos.md +0 -2
- package/resource/knowledge/push/api-reference/react-native.md +0 -3
- package/resource/knowledge/push/api-reference/uni-app.md +3 -5
- package/resource/knowledge/push/api-reference/unity.md +0 -1
- package/resource/knowledge/push/api-reference/unreal-engine.md +0 -1
- package/resource/knowledge/push/config/android/fcm.md +0 -6
- package/resource/knowledge/push/config/android/honor.md +1 -7
- package/resource/knowledge/push/config/android/huawei.md +1 -9
- package/resource/knowledge/push/config/android/meizu.md +1 -7
- package/resource/knowledge/push/config/android/oppo.md +1 -3
- package/resource/knowledge/push/config/android/vivo.md +1 -12
- package/resource/knowledge/push/config/android/xiaomi.md +0 -5
- package/resource/knowledge/push/config/donut.md +0 -12
- package/resource/knowledge/push/config/harmonyos.md +18 -7
- package/resource/knowledge/push/config/ios.md +26 -33
- package/resource/knowledge/push/config/react-native.md +0 -30
- package/resource/knowledge/push/config/unity.md +0 -30
- package/resource/knowledge/push/config/unreal-engine.md +0 -30
- package/resource/knowledge/push/integration/android.md +148 -57
- package/resource/knowledge/push/integration/donut.md +5 -21
- package/resource/knowledge/push/integration/flutter.md +4 -6
- package/resource/knowledge/push/integration/harmonyos.md +17 -16
- package/resource/knowledge/push/integration/ios.md +30 -18
- package/resource/knowledge/push/integration/react-native.md +10 -60
- package/resource/knowledge/push/integration/uni-app.md +3 -25
- package/resource/knowledge/push/integration/unity.md +8 -77
- package/resource/knowledge/push/integration/unreal-engine.md +37 -96
- package/resource/knowledge/roomkit/best-practice/common/room-ghost-member.md +75 -0
- package/resource/knowledge/roomkit/best-practice/common/room-limit-and-multi.md +88 -0
- package/resource/knowledge/roomkit/best-practice/common/room-screen-share-preview.md +87 -0
- package/resource/knowledge/roomkit/best-practice/common/room-status-after-all-leave.md +73 -0
- package/resource/knowledge/roomkit/best-practice/vue/room-uikit-vs-atomicx.md +115 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -5
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +2 -4
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -5
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -5
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +1 -7
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +1 -2
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +0 -1
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -3
- package/resource/knowledge/roomkit/preset/android/integration.md +202 -6
- package/resource/knowledge/roomkit/preset/flutter/integration.md +1 -16
- package/resource/knowledge/roomkit/preset/ios/integration.md +201 -7
- package/resource/knowledge/roomkit/preset/react/integration.md +205 -4
- package/resource/knowledge/rtcengine/web/api.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/22-advanced-audio-mixer.md +2 -2
- package/resource/knowledge/rtcengine/web/plugin/23-advanced-support-detection.md +3 -3
- package/resource/knowledge/rtcengine/web/plugin/28-advanced-beauty.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md +2 -0
- package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -4
- package/resource/knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md +2 -0
- package/resource/knowledge/share/userSig.md +2 -2
- package/resource/knowledge/trtc/android/TRTCCloud.md +16 -16
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +5 -5
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +3 -3
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/android/TXDeviceManager.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +14 -14
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +3 -3
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +5 -5
- package/resource/knowledge/trtc/ios/TRTCCloud.md +14 -14
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +3 -3
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +5 -5
- package/server.js +8 -3
- package/tools/common/finalize_answer.js +9 -1
- package/tools/common/search_trtc_knowledge.js +3 -1
- package/tools/definitions/finalize_answer_def.js +2 -2
- package/tools/definitions/integration-boundary.js +2 -1
- package/tools/definitions/search_trtc_knowledge_def.js +2 -1
- package/utils/report-cls-client.js +3 -3
- package/utils/report-es-client.js +1 -1
- package/cursor-setting.png +0 -0
- package/mcp-server-prompt.png +0 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +0 -80
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +0 -20
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +0 -116
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +0 -475
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +0 -587
- package/resource/knowledge/callkit/preset/web/api.md +0 -79
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +0 -16
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API
|
|
1
|
+
TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景;更详细的接入步骤。
|
|
2
2
|
|
|
3
3
|
> **说明:**
|
|
4
|
-
>
|
|
5
|
-
> 为提供更优质的音视频通信能力, TUICallKit npm 包 [@trtc/calls-uikit-react](https://www.npmjs.com/package/@trtc/calls-uikit-react)、[@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue)、[@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2)、[@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) 在 4.0.0 版本进行了重大升级。
|
|
4
|
+
> 为提供更优质的音视频通信能力, TUICallKit npm 包 [@trtc/calls-uikit-react](https://www.npmjs.com/package/@trtc/calls-uikit-react) 在 4.0.0 版本进行了重大升级。
|
|
6
5
|
>
|
|
7
6
|
|
|
8
7
|
## API 概览
|
|
@@ -65,127 +64,6 @@ function handleAfterCalling() {
|
|
|
65
64
|
}
|
|
66
65
|
```
|
|
67
66
|
|
|
68
|
-
【Vue3】
|
|
69
|
-
``` bash
|
|
70
|
-
<template>
|
|
71
|
-
<TUICallKit
|
|
72
|
-
:allowedMinimized="true"
|
|
73
|
-
:allowedFullScreen="true"
|
|
74
|
-
:videoDisplayMode="VideoDisplayMode.CONTAIN"
|
|
75
|
-
:videoResolution="VideoResolution.RESOLUTION_1080P"
|
|
76
|
-
:beforeCalling="beforeCalling"
|
|
77
|
-
:afterCalling="afterCalling"
|
|
78
|
-
:onMinimized="onMinimized"
|
|
79
|
-
:kickedOut="handleKickedOut"
|
|
80
|
-
:statusChanged="handleStatusChanged"
|
|
81
|
-
/>
|
|
82
|
-
</template>
|
|
83
|
-
|
|
84
|
-
<script lang="ts" setup>
|
|
85
|
-
import { TUICallKit, TUICallKitAPI, VideoDisplayMode, VideoResolution, STATUS } from "@trtc/calls-uikit-vue";
|
|
86
|
-
|
|
87
|
-
function beforeCalling(type: string, error: any) {
|
|
88
|
-
console.log("[TUICallkit Demo] beforeCalling:", type, error);
|
|
89
|
-
}
|
|
90
|
-
function afterCalling() {
|
|
91
|
-
console.log("[TUICallkit Demo] afterCalling");
|
|
92
|
-
}
|
|
93
|
-
function onMinimized(oldStatus: string, newStatus: string) {
|
|
94
|
-
console.log("[TUICallkit Demo] onMinimized: " + oldStatus + " -> " + newStatus);
|
|
95
|
-
}
|
|
96
|
-
function kickedOut() {
|
|
97
|
-
console.log("[TUICallkit Demo] kickedOut");
|
|
98
|
-
}
|
|
99
|
-
function statusChanged(args: { oldStatus: string; newStatus: string; }) {
|
|
100
|
-
const { oldStatus, newStatus } = args;
|
|
101
|
-
if (newStatus === STATUS.CALLING_C2C_VIDEO) {
|
|
102
|
-
console.log(`[TUICallkit Demo] statusChanged: ${oldStatus} -> ${newStatus}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
</script>
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
【Vue2.7】
|
|
110
|
-
``` javascript
|
|
111
|
-
<template>
|
|
112
|
-
<TUICallKit
|
|
113
|
-
:allowedMinimized="true"
|
|
114
|
-
:allowedFullScreen="true"
|
|
115
|
-
:videoDisplayMode="VideoDisplayMode.CONTAIN"
|
|
116
|
-
:videoResolution="VideoResolution.RESOLUTION_1080P"
|
|
117
|
-
:beforeCalling="beforeCalling"
|
|
118
|
-
:afterCalling="afterCalling"
|
|
119
|
-
:onMinimized="onMinimized"
|
|
120
|
-
:kickedOut="handleKickedOut"
|
|
121
|
-
:statusChanged="handleStatusChanged"
|
|
122
|
-
/>
|
|
123
|
-
</template>
|
|
124
|
-
|
|
125
|
-
<script lang="ts" setup>
|
|
126
|
-
import { TUICallKit, TUICallKitAPI, VideoDisplayMode, VideoResolution, STATUS } from "@trtc/calls-uikit-vue2";
|
|
127
|
-
|
|
128
|
-
function beforeCalling(type: string, error: any) {
|
|
129
|
-
console.log("[TUICallkit Demo] beforeCalling:", type, error);
|
|
130
|
-
}
|
|
131
|
-
function afterCalling() {
|
|
132
|
-
console.log("[TUICallkit Demo] afterCalling");
|
|
133
|
-
}
|
|
134
|
-
function onMinimized(oldStatus: string, newStatus: string) {
|
|
135
|
-
console.log("[TUICallkit Demo] onMinimized: " + oldStatus + " -> " + newStatus);
|
|
136
|
-
}
|
|
137
|
-
function kickedOut() {
|
|
138
|
-
console.log("[TUICallkit Demo] kickedOut");
|
|
139
|
-
}
|
|
140
|
-
function statusChanged(args: { oldStatus: string; newStatus: string; }) {
|
|
141
|
-
const { oldStatus, newStatus } = args;
|
|
142
|
-
if (newStatus === STATUS.CALLING_C2C_VIDEO) {
|
|
143
|
-
console.log(`[TUICallkit Demo] statusChanged: ${oldStatus} -> ${newStatus}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
</script>
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
【Vue2.6】
|
|
150
|
-
``` javascript
|
|
151
|
-
<template>
|
|
152
|
-
<TUICallKit
|
|
153
|
-
:allowedMinimized="true"
|
|
154
|
-
:allowedFullScreen="true"
|
|
155
|
-
:videoDisplayMode="VideoDisplayMode.CONTAIN"
|
|
156
|
-
:videoResolution="VideoResolution.RESOLUTION_1080P"
|
|
157
|
-
:beforeCalling="beforeCalling"
|
|
158
|
-
:afterCalling="afterCalling"
|
|
159
|
-
:onMinimized="onMinimized"
|
|
160
|
-
:kickedOut="handleKickedOut"
|
|
161
|
-
:statusChanged="handleStatusChanged"
|
|
162
|
-
/>
|
|
163
|
-
</template>
|
|
164
|
-
|
|
165
|
-
<script lang="ts" setup>
|
|
166
|
-
import { TUICallKit, TUICallKitAPI, VideoDisplayMode, VideoResolution, STATUS } from "@trtc/calls-uikit-vue2.6";
|
|
167
|
-
|
|
168
|
-
function beforeCalling(type: string, error: any) {
|
|
169
|
-
console.log("[TUICallkit Demo] beforeCalling:", type, error);
|
|
170
|
-
}
|
|
171
|
-
function afterCalling() {
|
|
172
|
-
console.log("[TUICallkit Demo] afterCalling");
|
|
173
|
-
}
|
|
174
|
-
function onMinimized(oldStatus: string, newStatus: string) {
|
|
175
|
-
console.log("[TUICallkit Demo] onMinimized: " + oldStatus + " -> " + newStatus);
|
|
176
|
-
}
|
|
177
|
-
function kickedOut() {
|
|
178
|
-
console.log("[TUICallkit Demo] kickedOut");
|
|
179
|
-
}
|
|
180
|
-
function statusChanged(args: { oldStatus: string; newStatus: string; }) {
|
|
181
|
-
const { oldStatus, newStatus } = args;
|
|
182
|
-
if (newStatus === STATUS.CALLING_C2C_VIDEO) {
|
|
183
|
-
console.log(`[TUICallkit Demo] statusChanged: ${oldStatus} -> ${newStatus}`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
</script>
|
|
187
|
-
```
|
|
188
|
-
|
|
189
67
|
## TUICallKitAPI API 详情
|
|
190
68
|
|
|
191
69
|
【React】
|
|
@@ -193,21 +71,6 @@ function statusChanged(args: { oldStatus: string; newStatus: string; }) {
|
|
|
193
71
|
import { TUICallKitAPI } from "@trtc/calls-uikit-react";
|
|
194
72
|
```
|
|
195
73
|
|
|
196
|
-
【Vue3】
|
|
197
|
-
``` javascript
|
|
198
|
-
import { TUICallKitAPI } from "@trtc/calls-uikit-vue";
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
【Vue2.7】
|
|
202
|
-
``` javascript
|
|
203
|
-
import { TUICallKitAPI } from "@trtc/calls-uikit-vue2";
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
【Vue2.6】
|
|
207
|
-
``` javascript
|
|
208
|
-
import { TUICallKitAPI } from "@trtc/calls-uikit-vue2.6";
|
|
209
|
-
```
|
|
210
|
-
|
|
211
74
|
### init
|
|
212
75
|
|
|
213
76
|
初始化 TUICallKit。
|
|
@@ -225,7 +88,7 @@ try {
|
|
|
225
88
|
参数如下表所示:
|
|
226
89
|
| 参数 | 类型 | 是否必填 | 含义 |
|
|
227
90
|
| --- | --- | --- | --- |
|
|
228
|
-
| SDKAppID | Number | 是 | 应用的 SDKAppID,您可以在实时音视频控制台中找到您的 SDKAppID
|
|
91
|
+
| SDKAppID | Number | 是 | 应用的 SDKAppID,您可以在实时音视频控制台中找到您的 SDKAppID,具体。 |
|
|
229
92
|
| userID | String | 是 | 即用户名,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。<br><strong>注意:</strong>不支持同一个 userID 在两台不同的设备上同时进入同一个房间通话,否则会相互干扰。 |
|
|
230
93
|
| userSig | String | 是 | 使用 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 userSig。<br>它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务,获取方式请参见 <a href="https://cloud.tencent.com/document/product/647/17275">UserSig</a>。 |
|
|
231
94
|
| tim | TencentCloudChat | 否 | tim 是 <a href="https://www.npmjs.com/package/@tencentcloud/chat">TencentCloudChat</a> SDK 的实例。 |
|
|
@@ -291,7 +154,6 @@ TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
|
|
|
291
154
|
设置当前用户昵称和头像。
|
|
292
155
|
|
|
293
156
|
> **注意:**
|
|
294
|
-
>
|
|
295
157
|
> **通话中使用该接口修改用户信息,UI 不会立即更新,需要等到下次通话才能看到变化**。
|
|
296
158
|
>
|
|
297
159
|
|
|
@@ -410,13 +272,6 @@ try {
|
|
|
410
272
|
|
|
411
273
|
隐藏功能按钮,目前仅支持 摄像头,麦克风和切换前后置按钮。
|
|
412
274
|
|
|
413
|
-
【Vue】
|
|
414
|
-
``` javascript
|
|
415
|
-
import { TUICallKitAPI, FeatureButton } from "@trtc/calls-uikit-vue";
|
|
416
|
-
|
|
417
|
-
TUICallKitAPI.hideFeatureButton(FeatureButton.Camera);
|
|
418
|
-
```
|
|
419
|
-
|
|
420
275
|
【React】
|
|
421
276
|
``` javascript
|
|
422
277
|
import { TUICallKitAPI, FeatureButton } from "@trtc/calls-uikit-react";
|
|
@@ -463,12 +318,6 @@ TUICallKitAPI.setRemoteViewBackgroundImage(userId, url);
|
|
|
463
318
|
|
|
464
319
|
设置通话界面布局模式。
|
|
465
320
|
|
|
466
|
-
【Vue】
|
|
467
|
-
``` javascript
|
|
468
|
-
import { TUICallKitAPI, LayoutMode } from "@trtc/calls-uikit-vue";
|
|
469
|
-
TUICallKitAPI.setLayoutMode(LayoutMode.LocalInLargeView);
|
|
470
|
-
```
|
|
471
|
-
|
|
472
321
|
【React】
|
|
473
322
|
``` javascript
|
|
474
323
|
import { TUICallKitAPI, LayoutMode } from "@trtc/calls-uikit-react";
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API
|
|
1
|
+
TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API,您可以通过简单接口快速实现一个类微信的音视频通话场景;更详细的接入步骤。
|
|
2
2
|
|
|
3
3
|
> **说明:**
|
|
4
|
-
>
|
|
5
|
-
> 为提供更优质的音视频通信能力, TUICallKit npm 包 [@trtc/calls-uikit-react](https://www.npmjs.com/package/@trtc/calls-uikit-react)、[@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue)、[@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2)、[@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) 在 4.0.0 版本进行了重大升级。
|
|
4
|
+
> 为提供更优质的音视频通信能力, TUICallKit npm 包 [@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue)、[@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2)、[@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) 在 4.0.0 版本进行了重大升级。
|
|
6
5
|
>
|
|
7
6
|
|
|
8
7
|
## API 概览
|
|
@@ -46,25 +45,6 @@ TUICallKit 是音视频通话组件的**含 UI 接口**,使用 TUICallKit API
|
|
|
46
45
|
|
|
47
46
|
### 示例代码
|
|
48
47
|
|
|
49
|
-
【React】
|
|
50
|
-
``` bash
|
|
51
|
-
import { TUICallKit, VideoDisplayMode, VideoResolution } from "@trtc/calls-uikit-react";
|
|
52
|
-
|
|
53
|
-
<TUICallKit
|
|
54
|
-
videoDisplayMode={VideoDisplayMode.CONTAIN}
|
|
55
|
-
videoResolution={VideoResolution.RESOLUTION_1080P}
|
|
56
|
-
beforeCalling={handleBeforeCalling}
|
|
57
|
-
afterCalling={handleAfterCalling}
|
|
58
|
-
/>
|
|
59
|
-
|
|
60
|
-
function handleBeforeCalling(type: string, error: any) {
|
|
61
|
-
console.log("[TUICallkit Demo] handleBeforeCalling:", type, error);
|
|
62
|
-
}
|
|
63
|
-
function handleAfterCalling() {
|
|
64
|
-
console.log("[TUICallkit Demo] handleAfterCalling");
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
48
|
【Vue3】
|
|
69
49
|
``` bash
|
|
70
50
|
<template>
|
|
@@ -188,11 +168,6 @@ function statusChanged(args: { oldStatus: string; newStatus: string; }) {
|
|
|
188
168
|
|
|
189
169
|
## TUICallKitAPI API 详情
|
|
190
170
|
|
|
191
|
-
【React】
|
|
192
|
-
``` javascript
|
|
193
|
-
import { TUICallKitAPI } from "@trtc/calls-uikit-react";
|
|
194
|
-
```
|
|
195
|
-
|
|
196
171
|
【Vue3】
|
|
197
172
|
``` javascript
|
|
198
173
|
import { TUICallKitAPI } from "@trtc/calls-uikit-vue";
|
|
@@ -225,7 +200,7 @@ try {
|
|
|
225
200
|
参数如下表所示:
|
|
226
201
|
| 参数 | 类型 | 是否必填 | 含义 |
|
|
227
202
|
| --- | --- | --- | --- |
|
|
228
|
-
| SDKAppID | Number | 是 | 应用的 SDKAppID,您可以在实时音视频控制台中找到您的 SDKAppID
|
|
203
|
+
| SDKAppID | Number | 是 | 应用的 SDKAppID,您可以在实时音视频控制台中找到您的 SDKAppID,具体。 |
|
|
229
204
|
| userID | String | 是 | 即用户名,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。<br><strong>注意:</strong>不支持同一个 userID 在两台不同的设备上同时进入同一个房间通话,否则会相互干扰。 |
|
|
230
205
|
| userSig | String | 是 | 使用 SecretKey 对 SDKAppID、UserID 等信息进行加密,就可以得到 userSig。<br>它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务,获取方式请参见 <a href="https://cloud.tencent.com/document/product/647/17275">UserSig</a>。 |
|
|
231
206
|
| tim | TencentCloudChat | 否 | tim 是 <a href="https://www.npmjs.com/package/@tencentcloud/chat">TencentCloudChat</a> SDK 的实例。 |
|
|
@@ -291,7 +266,6 @@ TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
|
|
|
291
266
|
设置当前用户昵称和头像。
|
|
292
267
|
|
|
293
268
|
> **注意:**
|
|
294
|
-
>
|
|
295
269
|
> **通话中使用该接口修改用户信息,UI 不会立即更新,需要等到下次通话才能看到变化**。
|
|
296
270
|
>
|
|
297
271
|
|
|
@@ -417,13 +391,6 @@ import { TUICallKitAPI, FeatureButton } from "@trtc/calls-uikit-vue";
|
|
|
417
391
|
TUICallKitAPI.hideFeatureButton(FeatureButton.Camera);
|
|
418
392
|
```
|
|
419
393
|
|
|
420
|
-
【React】
|
|
421
|
-
``` javascript
|
|
422
|
-
import { TUICallKitAPI, FeatureButton } from "@trtc/calls-uikit-react";
|
|
423
|
-
|
|
424
|
-
TUICallKitAPI.hideFeatureButton(FeatureButton.Camera);
|
|
425
|
-
```
|
|
426
|
-
|
|
427
394
|
参数列表:
|
|
428
395
|
|
|
429
396
|
|参数|类型|是否必填|含义|
|
|
@@ -469,12 +436,6 @@ import { TUICallKitAPI, LayoutMode } from "@trtc/calls-uikit-vue";
|
|
|
469
436
|
TUICallKitAPI.setLayoutMode(LayoutMode.LocalInLargeView);
|
|
470
437
|
```
|
|
471
438
|
|
|
472
|
-
【React】
|
|
473
|
-
``` javascript
|
|
474
|
-
import { TUICallKitAPI, LayoutMode } from "@trtc/calls-uikit-react";
|
|
475
|
-
TUICallKitAPI.setLayoutMode(LayoutMode.LocalInLargeView);
|
|
476
|
-
```
|
|
477
|
-
|
|
478
439
|
参数列表:
|
|
479
440
|
|
|
480
441
|
|参数|类型|是否必填|含义|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web/小程序 Chat SDK 直播群(AVChatRoom)消息丢失排查与保障方案
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [AVChatRoom, 消息丢失, 直播群, MESSAGE_RECEIVED, 长轮询, MsgPriority, priority, restapi, 限频, 40条每秒]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web/小程序 Chat SDK 直播群(AVChatRoom)消息丢失排查与保障方案
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 场景 1(批量发送时丢消息):根因是业务侧消费 `MESSAGE_RECEIVED` 回调逻辑错误。该回调一次可能返回多条消息,必须读取完整列表 `event.data`。
|
|
15
|
+
- 场景 2(刷屏时重要消息没收到):根因是触发后台群消息限频。默认每群 `40` 条/秒,超过后会丢弃消息;可通过消息优先级提升重要消息保留概率。
|
|
16
|
+
- 场景 3(网络不稳或长时间后台后丢消息):符合直播群机制预期。应用后台超过 `2` 分钟后恢复,无法拉取超过缓存窗口的历史消息。
|
|
17
|
+
- 直播群消息不存漫游,后台默认只缓存 `2` 分钟内消息且上限 `2000` 条;超过窗口或上限后,被淘汰消息无法通过长轮询补回。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `EVENT.MESSAGE_RECEIVED` | 消息接收回调 | 一次回调可返回多条消息,业务必须遍历 `event.data` 全量处理 |
|
|
24
|
+
| `priority`(SDK) | SDK 发消息优先级 | `createXXXMessage` 可设置,超限频时高优先级消息更不易被丢弃 |
|
|
25
|
+
| `MsgPriority`(REST API) | REST API 发消息优先级 | 在消息体设置优先级,配合高并发场景保障关键通知 |
|
|
26
|
+
| 群限频(默认 `40` 条/秒) | 后台流控阈值 | 超过阈值会发生丢弃,长轮询无法拉取被丢弃消息 |
|
|
27
|
+
| 直播群缓存窗口(`2` 分钟/`2000` 条) | 临时缓存边界 | 超过时间或数量上限后,最早缓存消息会被清理 |
|
|
28
|
+
|
|
29
|
+
## 3. 机制/时序
|
|
30
|
+
|
|
31
|
+
业务发送消息(SDK/REST API)-> AVChatRoom 后台按群限频处理(默认 `40` 条/秒)-> 客户端通过长轮询接收消息并触发 `MESSAGE_RECEIVED` -> 业务消费回调列表。
|
|
32
|
+
当应用长时间后台(超过 `2` 分钟)后回前台:WebSocket 重连成功 -> 恢复长轮询 -> 仅可拉取缓存窗口内消息(`2` 分钟且最多 `2000` 条)。
|
|
33
|
+
|
|
34
|
+
## 4. 标准用法
|
|
35
|
+
|
|
36
|
+
1. **修正接收逻辑(场景 1)**:在 `MESSAGE_RECEIVED` 中按 `event.data` 全量遍历处理,禁止只处理 `event.data[0]`。
|
|
37
|
+
2. **保障重要消息(场景 2)**:将抽奖、商品上下架等关键消息设置为高优先级。
|
|
38
|
+
- SDK 发送:`createXXXMessage` 里设置 `priority`。
|
|
39
|
+
- REST API 发送:消息体设置 `MsgPriority`。
|
|
40
|
+
3. **控制发送速率(场景 2)**:业务侧对批量消息做限流/合并,避免持续超过每群 `40` 条/秒。
|
|
41
|
+
4. **处理后台恢复预期(场景 3)**:将“长时间后台后可能缺失直播群历史消息”作为产品预期告知,并用业务态兜底(如关键状态重拉接口)。
|
|
42
|
+
|
|
43
|
+
## 5. 结果判定
|
|
44
|
+
|
|
45
|
+
- 批量发消息压测时,`MESSAGE_RECEIVED` 回调中的每条 `event.data` 均被消费,无“只收第一条”问题。
|
|
46
|
+
- 发送速率超过 `40` 条/秒时,低优先级消息优先被丢弃,高优先级关键通知到达率提升。
|
|
47
|
+
- REST API 与 SDK 发送链路均已配置优先级字段(`MsgPriority` / `priority`)。
|
|
48
|
+
- 应用后台超过 `2` 分钟后回前台,业务侧能通过兜底机制恢复关键业务状态。
|
|
49
|
+
|
|
50
|
+
## 6. 常见误区
|
|
51
|
+
|
|
52
|
+
- 误区 1:把 `MESSAGE_RECEIVED` 当作单条消息回调,只处理 `event.data[0]`。
|
|
53
|
+
- 误区 2:高并发直播群不设置消息优先级,导致关键消息与刷屏消息同等级竞争。
|
|
54
|
+
- 误区 3:把直播群当作漫游群使用,默认期望长时间后台后仍可补齐全部历史消息。
|
|
55
|
+
|
|
56
|
+
## 7. 问题定义(检索辅助,极简)
|
|
57
|
+
|
|
58
|
+
Web Chat SDK 在直播群(`AVChatRoom`)场景下出现“丢消息”现象,业务希望保证抽奖、商品上架/下架等重要消息不丢失。
|
|
59
|
+
|
|
60
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
61
|
+
|
|
62
|
+
- AVChatRoom 为什么会丢消息?
|
|
63
|
+
- 直播群刷屏时怎么保证商品下架消息一定送达?
|
|
64
|
+
- `MESSAGE_RECEIVED` 回调一次返回多条消息怎么处理?
|
|
65
|
+
- 直播群后台后重连为什么拉不到之前消息?
|
|
66
|
+
|
|
67
|
+
## 9. 参考来源(可选)
|
|
68
|
+
|
|
69
|
+
- `MESSAGE_RECEIVED` 事件说明:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.MESSAGE_RECEIVED`
|
|
70
|
+
- SDK 消息优先级(`createTextMessage` 示例):`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#createTextMessage`
|
|
71
|
+
- REST API `MsgPriority` 说明:`https://cloud.tencent.com/document/product/269/1629`
|
package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web/小程序 Chat SDK 退群/解散群后会话残留移除方案
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [quitGroup, dismissGroup, deleteConversation, TIMGroupSystemNoticeElem, operationType, 会话列表, 退群, 解散群]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web/小程序 Chat SDK 退群/解散群后会话残留移除方案
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- `quitGroup` / `dismissGroup` 后会话残留是 SDK 体验设计行为:登录态有效时,群会话仍可保留用于查看历史消息。
|
|
15
|
+
- 要实现“彻底从会话列表移除”,需要在接收群系统通知(`TIMGroupSystemNoticeElem`)后主动调用 `deleteConversation`。
|
|
16
|
+
- 删除触发条件由 `message.payload.operationType` 决定:`4`(被踢出群组)、`5`(群组被解散)、`8`(用户主动退群)。
|
|
17
|
+
- 仅依赖 `quitGroup` / `dismissGroup` 的返回结果,不会自动删除会话列表项。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `TIMGroupSystemNoticeElem` | 群系统通知类型 | 标识群成员变更、解散、退群等系统事件 |
|
|
24
|
+
| `message.payload.operationType` | 通知动作码 | `4` 被踢出、`5` 群解散、`8` 主动退群 |
|
|
25
|
+
| `deleteConversation` | 删除会话接口 | 满足触发条件时调用,用于从会话列表移除对应群会话 |
|
|
26
|
+
| `quitGroup` / `dismissGroup` | 群管理动作 | 执行退群/解散,不负责会话列表彻底清理 |
|
|
27
|
+
|
|
28
|
+
## 3. 机制/时序
|
|
29
|
+
|
|
30
|
+
业务调用 `quitGroup` 或 `dismissGroup` -> SDK 保留对应群会话(登录态有效)-> 收到 `TIMGroupSystemNoticeElem` -> 业务根据 `operationType` 判断是否触发删除 -> 命中 `4/5/8` 时调用 `deleteConversation` -> 会话列表移除该群会话。
|
|
31
|
+
|
|
32
|
+
## 4. 标准用法
|
|
33
|
+
|
|
34
|
+
1. 无 UI 集成场景:直接通过 `chat.on` 监听 `MESSAGE_RECEIVED`,在回调中处理群系统通知。
|
|
35
|
+
2. 含 UI 集成场景:先从 `TUILogin.getContext()` 拿到 `chat` 实例,再通过 `chat.on` 监听 `MESSAGE_RECEIVED` 获取系统通知。
|
|
36
|
+
3. 在回调中筛选 `TIMGroupSystemNoticeElem` 类型消息。
|
|
37
|
+
4. 读取 `message.payload.operationType`,仅对 `4`、`5`、`8` 进入删除分支。
|
|
38
|
+
5. 根据群会话 ID 调用 `deleteConversation` 删除会话,并在成功后刷新会话列表状态,避免本地缓存残留。
|
|
39
|
+
|
|
40
|
+
## 5. 结果判定
|
|
41
|
+
|
|
42
|
+
- 调用 `quitGroup` 后,收到 `operationType=8` 通知并成功触发 `deleteConversation`。
|
|
43
|
+
- 调用 `dismissGroup` 后,收到 `operationType=5` 通知并成功移除群会话。
|
|
44
|
+
- 被管理员踢出群时,收到 `operationType=4` 后会话被自动清理。
|
|
45
|
+
- 会话列表刷新后不再出现目标群会话,且不会因系统通知重复回显。
|
|
46
|
+
|
|
47
|
+
## 6. 常见误区
|
|
48
|
+
|
|
49
|
+
- 误区 1:认为 `quitGroup` / `dismissGroup` 会自动删除会话列表项。
|
|
50
|
+
- 误区 2:收到群系统通知后未读取 `operationType` 就直接忽略。
|
|
51
|
+
- 误区 3:只做本地 UI 删除,不调用 `deleteConversation`,导致会话再次出现。
|
|
52
|
+
|
|
53
|
+
## 7. 问题定义(检索辅助,极简)
|
|
54
|
+
|
|
55
|
+
Web Chat SDK 调用 `quitGroup` 或 `dismissGroup` 后,会话列表中的群聊会话仍然存在;收到系统消息“您已退出该群聊”后,会话又出现在列表中。业务侧需要在退群/解散群后彻底移除该群聊会话。
|
|
56
|
+
|
|
57
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
58
|
+
|
|
59
|
+
- 调用 `quitGroup` 后为什么群会话还在会话列表?
|
|
60
|
+
- `dismissGroup` 后会话为什么又回来了?
|
|
61
|
+
- 收到“您已退出该群聊”后如何删除会话?
|
|
62
|
+
- 群系统通知如何联动 `deleteConversation`?
|
|
63
|
+
|
|
64
|
+
## 9. 参考来源(可选)
|
|
65
|
+
|
|
66
|
+
- GroupSystemNoticePayload:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/Message.html#.GroupSystemNoticePayload`
|
|
67
|
+
- deleteConversation:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#deleteConversation`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Chat SDK 图片消息 URL 的生命周期(blob 与 imageUrl)
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [sendMessage, createImageMessage, imageInfoArray, imageUrl, url, blob, https, 图片消息, 上传进度, 生命周期]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Chat SDK 图片消息 URL 的生命周期(blob 与 imageUrl)
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- `imageInfoArray[x].url` 主要用于本地预览,发送成功后仍是 `blob:` 内存 URL。
|
|
15
|
+
- 需要云端可访问 URL 时,读取发送成功返回消息中的 `imageInfoArray[x].imageUrl`。
|
|
16
|
+
- 刷新并重新登录后,拉取漫游消息时,`imageInfoArray[x].url` 为服务端 URL。
|
|
17
|
+
- 需要上传进度时,在 `createImageMessage` 时传入 `onProgress` 回调。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 阶段 | 语义 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `imageInfoArray[x].url` | 发送中/发送后 | 本地预览地址,可为 `blob:`,不保证自动更新为云端地址 |
|
|
24
|
+
| `imageInfoArray[x].imageUrl` | 发送成功后 | 服务端可访问地址,作为对外可访问 URL 使用 |
|
|
25
|
+
| `onProgress` | 上传过程中 | 文件上传进度回调,用于展示上传进度 |
|
|
26
|
+
|
|
27
|
+
## 3. 机制/时序
|
|
28
|
+
|
|
29
|
+
`createImageMessage` -> `sendMessage` -> 内部上传流程 -> 上传成功并发送到 IM 后台 -> 从返回消息读取 `imageInfoArray[x].imageUrl` -> 刷新重登后拉取漫游消息时 `imageInfoArray[x].url` 为服务端 URL。
|
|
30
|
+
|
|
31
|
+
## 4. 标准用法
|
|
32
|
+
|
|
33
|
+
1. 调用 `createImageMessage` 创建图片消息(如需进度,传入 `onProgress`)。
|
|
34
|
+
2. 调用 `sendMessage` 发送消息。
|
|
35
|
+
3. 发送成功后,从返回消息中读取 `imageInfoArray[x].imageUrl` 作为云端 URL。
|
|
36
|
+
4. 前端渲染图片的正确方式:渲染消息时读取 `imageInfoArray[x].url` 即可,发送时使用 `blob` 地址能够更快渲染图片。
|
|
37
|
+
|
|
38
|
+
## 5. 结果判定
|
|
39
|
+
|
|
40
|
+
- 发送后检查同一条消息:
|
|
41
|
+
- `imageInfoArray[x].url` 仍为 `blob:`;
|
|
42
|
+
- `imageInfoArray[x].imageUrl` 为服务端可访问地址。
|
|
43
|
+
- 刷新并重新登录后,拉取历史消息时,`imageInfoArray[x].url` 为服务端 URL。
|
|
44
|
+
|
|
45
|
+
## 6. 常见误区
|
|
46
|
+
|
|
47
|
+
- 误区 1:默认认为 `url` 会在上传后自动变成云端链接。
|
|
48
|
+
|
|
49
|
+
## 7. 问题定义(检索辅助,极简)
|
|
50
|
+
|
|
51
|
+
用户在发送图片消息后,看到 `imageInfoArray[x].url` 仍是 `blob:` 本地 URL,期望它自动变成腾讯云 `https` URL;同时希望明确上传完成后应读取哪个字段作为最终可访问地址。
|
|
52
|
+
|
|
53
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
54
|
+
|
|
55
|
+
- 图片消息发送后 `url` 为什么还是 `blob:`?
|
|
56
|
+
- 云端 `https` 图片地址应该从哪个字段取?
|
|
57
|
+
- `sendMessage` 成功后如何拿图片最终 URL?
|
|
58
|
+
- `imageInfoArray[x].url` 和 `imageInfoArray[x].imageUrl` 有什么区别?
|
|
59
|
+
- 刷新后历史消息里的图片 URL 为什么变了?
|
|
60
|
+
|
|
61
|
+
## 9. 参考来源(可选)
|
|
62
|
+
|
|
63
|
+
- Message 结构文档:[Message](https://web.sdk.qcloud.com/im/doc/v3/zh-cn/Message.html)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web Chat SDK login 返回 2025(重复登录)排查与修复
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [login, 2025, 重复登录, repeatLogin, web, miniprogram, 并发调用, 防抖]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Chat SDK login 返回 2025(重复登录)排查与修复
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- `2025` 的直接原因是业务侧在短时间内连续调用 `login`,且 SDK 还未收到第一次登录请求的后台回包。
|
|
15
|
+
- 在首次 `login` 发起后的约 `15s` 窗口内,若前一次登录仍未回包,SDK 会直接拦截后续 `login`,并返回 `2025`。
|
|
16
|
+
- 如果 SDK 已经收到登录回包,后续使用同一 `userID` 再次调用 `login`,不会走 `2025` 拦截分支,而是在 `login.then` 中返回 `imResponse.data.repeatLogin = true`。
|
|
17
|
+
- 解决方向是业务侧治理 `login` 调用逻辑:保证同一会话只存在一个进行中的 `login` 请求。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| 错误码 `2025` | 重复登录拦截信号 | 前一次 `login` 未回包时,短时间内再次调用被 SDK 直接拦截 |
|
|
24
|
+
| `imResponse.data.repeatLogin` | 重复登录标识 | SDK 已收到回包后,再次使用同一 `userID` 登录时在 `then` 中返回 `true` |
|
|
25
|
+
| `login` in-flight 状态 | 并发控制关键状态 | 业务侧需确保同一时刻仅一个 `login` 在执行 |
|
|
26
|
+
|
|
27
|
+
## 3. 机制/时序
|
|
28
|
+
|
|
29
|
+
第一次调用 `login` -> SDK 发起登录请求 -> 后台回包未返回 -> 业务侧在约 `15s` 内再次调用 `login` -> SDK 直接拦截并返回 `2025`。
|
|
30
|
+
第一次调用 `login` -> SDK 已收到后台回包 -> 业务侧再次使用同一 `userID` 调用 `login` -> 在 `login.then` 中拿到 `imResponse.data.repeatLogin = true`。
|
|
31
|
+
|
|
32
|
+
## 4. 标准用法
|
|
33
|
+
|
|
34
|
+
1. 业务侧实现登录单飞(single-flight):同一 `userID` 在前一次 `login` 完成前禁止重复发起。
|
|
35
|
+
2. 为 `login` 增加状态机(`idle`/`logging_in`/`logged_in`)或 Promise 复用,复用进行中的登录结果。
|
|
36
|
+
3. 收到 `2025` 时不立即重试,先等待当前 in-flight 登录完成,再按结果决定后续动作。
|
|
37
|
+
4. 在 `login.then` 中检查 `imResponse.data.repeatLogin`,按“已登录”分支处理,不重复初始化会话。
|
|
38
|
+
|
|
39
|
+
## 5. 结果判定
|
|
40
|
+
|
|
41
|
+
- 同一 `userID` 连续触发登录时,业务侧只发出一次真实 `login` 请求。
|
|
42
|
+
- 压测快速点击登录入口,不再出现 `2025`。
|
|
43
|
+
- 已回包后再次调用 `login` 时,可在 `then` 中稳定观察到 `repeatLogin` 标识并走预期分支。
|
|
44
|
+
- 登录态初始化逻辑仅执行一次,无重复拉取会话或重复监听。
|
|
45
|
+
|
|
46
|
+
## 6. 常见误区
|
|
47
|
+
|
|
48
|
+
- 误区 1:收到 `2025` 后立即再次调用 `login`,造成重复拦截循环。
|
|
49
|
+
- 误区 2:把 `2025` 与 `repeatLogin=true` 当成同一阶段错误处理。
|
|
50
|
+
- 误区 3:页面 `onShow`、路由切换、重连回调中未做幂等保护,导致并发登录。
|
|
51
|
+
|
|
52
|
+
## 7. 问题定义(检索辅助,极简)
|
|
53
|
+
|
|
54
|
+
Web Chat SDK 调用 `login` 时,在短时间内重复触发登录请求,会返回 `2025`。业务侧需要明确:`2025` 在什么条件下触发,以及与 `imResponse.data.repeatLogin = true` 的区别。
|
|
55
|
+
|
|
56
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
57
|
+
|
|
58
|
+
- Web IM SDK 调 `login` 为什么报 2025?
|
|
59
|
+
- `login` 返回 2025 是什么含义?
|
|
60
|
+
- 什么情况下会出现重复登录错误码 2025?
|
|
61
|
+
- `repeatLogin=true` 和 `2025` 有什么区别?
|
|
62
|
+
|
|
63
|
+
## 9. 参考来源(可选)
|
|
64
|
+
|
|
65
|
+
- Chat SDK `login` 文档:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#login`
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web Chat SDK 会话已读上报和消息已读回执方案(setMessageRead 与 sendMessageReadReceipt)
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [setMessageRead, sendMessageReadReceipt, 已读回执, MESSAGE_READ_BY_PEER, MESSAGE_READ_RECEIPT_RECEIVED, needReadReceipt, 群消息已读]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Chat SDK 会话已读上报和消息已读回执方案(setMessageRead 与 sendMessageReadReceipt)
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 进入会话后自动发送消息级已读回执的推荐流程是:先通过 `getMessageList` 拉漫游消息,再调用 `sendMessageReadReceipt` 上报对应消息已读。
|
|
15
|
+
- `setMessageRead` 是会话维度已读上报:调用成功会清空当前会话未读数;单聊场景对端可通过 `MESSAGE_READ_BY_PEER` 更新消息已读状态。
|
|
16
|
+
- `sendMessageReadReceipt` 是单条消息维度已读回执:不影响会话未读数,仅影响消息已读/未读状态;群消息要实现消息级已读状态必须使用该能力。
|
|
17
|
+
- 消息已读回执能力有使用限制:体验版/标准版不可用;创建消息需设置 `needReadReceipt=true`;群已读回执要求群人数上限 `200` 且需在控制台开启群消息已读回执开关(控制台 > 功能配置 > 群组配置 > 群消息已读回执)。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `setMessageRead` | 会话维度已读上报 | 清空当前会话未读数;单聊可触发对端 `MESSAGE_READ_BY_PEER` |
|
|
24
|
+
| `sendMessageReadReceipt` | 消息维度已读回执 | 不清空会话未读数,只更新消息已读/未读状态 |
|
|
25
|
+
| `needReadReceipt` | 消息已读回执开关 | 创建消息时必须设为 `true` 才能使用消息级回执 |
|
|
26
|
+
| `MESSAGE_READ_BY_PEER` | 单聊对端已读事件 | 用于更新单聊消息已读状态 |
|
|
27
|
+
| `MESSAGE_READ_RECEIPT_RECEIVED` | 消息回执接收事件 | 用于处理收到的消息已读回执更新 |
|
|
28
|
+
|
|
29
|
+
## 3. 机制/时序
|
|
30
|
+
|
|
31
|
+
进入会话 -> 调用 `getMessageList` 拉取漫游消息 -> 将消息列表传给 `sendMessageReadReceipt`(SDK 内部过滤处理)-> SDK 下发已读回执事件(如 `MESSAGE_READ_RECEIPT_RECEIVED`)-> 业务更新消息已读/未读展示。
|
|
32
|
+
若调用 `setMessageRead`:会话未读数被清空;单聊对端可收到 `MESSAGE_READ_BY_PEER`。
|
|
33
|
+
|
|
34
|
+
## 4. 标准用法
|
|
35
|
+
|
|
36
|
+
1. 会话进入时先调用 `getMessageList` 拉取消息列表。
|
|
37
|
+
2. 将 `getMessageList` 返回的消息列表直接传给 `sendMessageReadReceipt`,由 SDK 内部过滤并完成消息级已读上报。
|
|
38
|
+
3. 仅在需要处理会话未读数时调用 `setMessageRead`,不要用它替代群消息已读回执。
|
|
39
|
+
4. 创建需要回执的消息时设置 `needReadReceipt = true`。
|
|
40
|
+
5. 订阅并处理 `MESSAGE_READ_BY_PEER`、`MESSAGE_READ_RECEIPT_RECEIVED`,同步更新消息已读状态。
|
|
41
|
+
|
|
42
|
+
## 5. 结果判定
|
|
43
|
+
|
|
44
|
+
- 进入群聊后,拉取到的消息可成功触发 `sendMessageReadReceipt`。
|
|
45
|
+
- 调用 `sendMessageReadReceipt` 后,会话未读数不被清空,但消息已读状态发生更新。
|
|
46
|
+
- 调用 `setMessageRead` 后,会话未读数被清空,单聊对端可观测到 `MESSAGE_READ_BY_PEER`。
|
|
47
|
+
- 群聊已读场景下,已正确开通套餐、开启控制台开关,且群人数不超过 `200`。
|
|
48
|
+
|
|
49
|
+
## 6. 常见误区
|
|
50
|
+
|
|
51
|
+
- 误区 1:用 `setMessageRead` 代替 `sendMessageReadReceipt` 实现群消息已读状态。
|
|
52
|
+
- 误区 2:未设置 `needReadReceipt=true` 就期望收到消息级已读回执。
|
|
53
|
+
- 误区 3:未开通旗舰版以上套餐或未开启群消息已读回执开关就上线群已读能力。
|
|
54
|
+
|
|
55
|
+
## 7. 问题定义(检索辅助,极简)
|
|
56
|
+
|
|
57
|
+
Web 端进入群聊会话后,如何自动发送已读回执给消息发送方?`setMessageRead` 和 `sendMessageReadReceipt` 的区别是什么?
|
|
58
|
+
|
|
59
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
60
|
+
|
|
61
|
+
- 进入会话后怎么自动上报已读?
|
|
62
|
+
- 群聊已读/未读显示要用哪个接口?
|
|
63
|
+
- `setMessageRead` 和 `sendMessageReadReceipt` 有什么区别?
|
|
64
|
+
- 为什么调用 `setMessageRead` 后消息已读状态没有按预期变化?
|
|
65
|
+
|
|
66
|
+
## 9. 参考来源(可选)
|
|
67
|
+
|
|
68
|
+
- 套餐购买:`https://buy.cloud.tencent.com/avc?from=17182`
|
|
69
|
+
- setMessageRead:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#setMessageRead`
|
|
70
|
+
- sendMessageReadReceipt:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#sendMessageReadReceipt`
|
|
71
|
+
- MESSAGE_READ_BY_PEER:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.MESSAGE_READ_BY_PEER`
|
|
72
|
+
- MESSAGE_READ_RECEIPT_RECEIVED:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.MESSAGE_READ_RECEIPT_RECEIVED`
|