@tencent-rtc/mcp 1.4.7 → 1.6.0-beta.1
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/cursor-setting.png +0 -0
- package/knowledge/bm25-cache.js +74 -0
- package/knowledge/bm25-cache.js.map +1 -0
- package/knowledge/bm25.js +148 -0
- package/knowledge/bm25.js.map +1 -0
- package/knowledge/build-index.js +70 -0
- package/knowledge/build-index.js.map +1 -0
- package/knowledge/chunker.js +168 -0
- package/knowledge/chunker.js.map +1 -0
- package/knowledge/content-loader.js +40 -0
- package/knowledge/content-loader.js.map +1 -0
- package/knowledge/doc-url-resolver.js +143 -0
- package/knowledge/doc-url-resolver.js.map +1 -0
- package/knowledge/extractors.js +26 -0
- package/knowledge/extractors.js.map +1 -0
- package/knowledge/path-meta.js +185 -0
- package/knowledge/path-meta.js.map +1 -0
- package/knowledge/search/exact-lookup.js +498 -0
- package/knowledge/search/exact-lookup.js.map +1 -0
- package/knowledge/search/filter-pool.js +105 -0
- package/knowledge/search/filter-pool.js.map +1 -0
- package/knowledge/search/product-scope-intent.js +41 -0
- package/knowledge/search/product-scope-intent.js.map +1 -0
- package/knowledge/search/requires-framework.js +82 -0
- package/knowledge/search/requires-framework.js.map +1 -0
- package/knowledge/search/search-knowledge.js +230 -0
- package/knowledge/search/search-knowledge.js.map +1 -0
- package/mcp-server-prompt.png +0 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +19 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +43 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/doc-source-urls.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
- package/resource/integration/callkit/preset/flutter/integration.md +346 -0
- package/resource/integration/callkit/preset/ios/integration.md +408 -0
- package/resource/integration/callkit/preset/react/integration.md +362 -0
- package/resource/integration/callkit/preset/vue/integration.md +356 -0
- package/resource/integration/chat/preset/android/integration.md +500 -0
- package/resource/integration/chat/preset/flutter/integration.md +370 -0
- package/resource/integration/chat/preset/ios/integration.md +566 -0
- package/resource/integration/chat/preset/react/integration.md +490 -0
- package/resource/integration/chat/preset/vue/integration.md +504 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
- package/resource/integration/roomkit/preset/vue/integration.md +562 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
- package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
- package/resource/knowledge/callkit/faq/android.md +92 -0
- package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
- package/resource/knowledge/callkit/faq/error-code.md +67 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +104 -0
- package/resource/knowledge/callkit/faq/web.md +74 -0
- package/resource/knowledge/callkit/preset/android/api.md +412 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +234 -0
- package/resource/knowledge/callkit/preset/web/api.md +83 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
- package/resource/knowledge/chat/preset/android/features/language.md +136 -0
- package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
- package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
- package/resource/knowledge/chat/preset/android/features/search.md +64 -0
- package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
- package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
- package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
- package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
- package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
- package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
- package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
- package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +17 -0
- package/resource/knowledge/chat/urls/product.md +43 -0
- package/resource/knowledge/chat/urls/restapi.md +204 -0
- package/resource/knowledge/chat/urls/sdk/android.md +80 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
- package/resource/knowledge/chat/urls/sdk/web.md +80 -0
- package/resource/knowledge/chat/urls/webhook.md +68 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
- package/resource/knowledge/livekit/faq/error-code.md +193 -0
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
- package/resource/knowledge/push/config/android.md +92 -0
- package/resource/knowledge/push/config/harmonyos.md +83 -0
- package/resource/knowledge/push/config/ios.md +254 -0
- package/resource/knowledge/push/config/react-native.md +254 -0
- package/resource/knowledge/push/config/unity.md +209 -0
- package/resource/knowledge/push/config/unreal-engine.md +194 -0
- package/resource/knowledge/push/integration/android.md +404 -0
- package/resource/knowledge/push/integration/flutter.md +465 -0
- package/resource/knowledge/push/integration/harmonyos.md +63 -0
- package/resource/knowledge/push/integration/ios.md +246 -0
- package/resource/knowledge/push/integration/react-native.md +366 -0
- package/resource/knowledge/push/integration/uni-app.md +208 -0
- package/resource/knowledge/push/integration/unity.md +389 -0
- package/resource/knowledge/push/integration/unreal-engine.md +390 -0
- package/resource/knowledge/push/overview/prepare.md +60 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
- package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
- package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
- package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
- package/server.js +35 -11
- package/server.js.map +1 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -3
- package/tools/call/get_native_call_uikit_integration.js.map +1 -1
- package/tools/call/get_native_callkit_core_integration.js +2 -5
- package/tools/call/get_native_callkit_core_integration.js.map +1 -1
- package/tools/call/get_web_call_uikit_integration.js +2 -3
- package/tools/call/get_web_call_uikit_integration.js.map +1 -1
- package/tools/chat/get_native_chat_uikit_integration.js +2 -3
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
- package/tools/chat/get_web_chat_uikit_integration.js +2 -3
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
- package/tools/common/present_framework_choice.js +19 -13
- package/tools/common/present_framework_choice.js.map +1 -1
- package/tools/common/record_answer.js +19 -25
- package/tools/common/record_answer.js.map +1 -1
- package/tools/common/record_feedback.js +17 -30
- package/tools/common/record_feedback.js.map +1 -1
- package/tools/common/search_trtc_knowledge.js +45 -0
- package/tools/common/search_trtc_knowledge.js.map +1 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
- package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_room_core_integration_def.js +50 -0
- package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/integration-boundary.js +6 -0
- package/tools/definitions/integration-boundary.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +12 -10
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/definitions/record_answer_def.js +19 -17
- package/tools/definitions/record_answer_def.js.map +1 -1
- package/tools/definitions/record_feedback_def.js +14 -13
- package/tools/definitions/record_feedback_def.js.map +1 -1
- package/tools/definitions/search_trtc_knowledge_def.js +40 -0
- package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
- package/tools/index.js +5 -36
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_integration.js +1 -3
- package/tools/live/get_native_livekit_core_integration.js.map +1 -1
- package/tools/live/get_web_live_uikit_integration.js +2 -4
- package/tools/live/get_web_live_uikit_integration.js.map +1 -1
- package/tools/room/get_web_room_core_integration.js +48 -0
- package/tools/room/get_web_room_core_integration.js.map +1 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -3
- package/tools/room/get_web_room_uikit_integration.js.map +1 -1
- package/utils/generate-structured-result.js +24 -30
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/get-doc-content.js +14 -8
- package/utils/get-doc-content.js.map +1 -1
- package/utils/report-cls-client.js +18 -20
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
- package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
- package/resource/doc/callkit/faq/common/error-code.md +0 -47
- package/resource/doc/callkit/faq/flutter-faq.md +0 -115
- package/resource/doc/callkit/faq/ios-faq.md +0 -115
- package/resource/doc/callkit/faq/web-faq.md +0 -36
- package/resource/doc/callkit/preset/android/api.md +0 -296
- package/resource/doc/callkit/preset/flutter/api.md +0 -410
- package/resource/doc/callkit/preset/flutter/integration.md +0 -164
- package/resource/doc/callkit/preset/ios/api.md +0 -80
- package/resource/doc/callkit/preset/ios/integration.md +0 -187
- package/resource/doc/callkit/preset/react/api.md +0 -501
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -501
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -111
- package/resource/doc/chatkit/android/features/theme.md +0 -219
- package/resource/doc/chatkit/android/integration.md +0 -490
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
- package/resource/doc/chatkit/faq/common/product.md +0 -7
- package/resource/doc/chatkit/faq/common/server.md +0 -44
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
- package/resource/doc/chatkit/flutter/faq.md +0 -23
- package/resource/doc/chatkit/flutter/features/theme.md +0 -235
- package/resource/doc/chatkit/flutter/integration.md +0 -344
- package/resource/doc/chatkit/ios/faq.md +0 -111
- package/resource/doc/chatkit/ios/features/theme.md +0 -267
- package/resource/doc/chatkit/react/components/avatar.md +0 -104
- package/resource/doc/chatkit/react/components/chat-header.md +0 -148
- package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -37
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
- package/resource/doc/chatkit/react/components/message-list.md +0 -293
- package/resource/doc/chatkit/react/components/tuikit.md +0 -34
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/react/integration.md +0 -416
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
- package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
- package/resource/doc/chatkit/vue/components/chat.md +0 -45
- package/resource/doc/chatkit/vue/components/component-list.md +0 -87
- package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
- package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
- package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
- package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
- package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
- package/resource/doc/chatkit/vue/components/message-list.md +0 -433
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -36
- package/resource/doc/chatkit/vue/integration.md +0 -428
- package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
- package/resource/doc/livekit/faq/common/error-code.md +0 -88
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-state.md +0 -282
- package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
- package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
- package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
- package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
- package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
- package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
- package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
- package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
- package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
- package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
- package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
- package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
- package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
- package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
- package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -47
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
- package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_api_def.js +0 -30
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
- package/tools/definitions/record_skill_session_def.js +0 -31
- package/tools/definitions/record_skill_session_def.js.map +0 -1
- package/tools/live/get_native_livekit_core_features.js +0 -68
- package/tools/live/get_native_livekit_core_features.js.map +0 -1
- package/tools/live/get_web_livekit_api.js +0 -33
- package/tools/live/get_web_livekit_api.js.map +0 -1
- package/tools/live/get_web_livekit_component_detail.js +0 -35
- package/tools/live/get_web_livekit_component_detail.js.map +0 -1
- package/tools/room/get_web_roomkit_feature_detail.js +0 -69
- package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
- package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
- package/utils/build-session-directives.js +0 -120
- package/utils/build-session-directives.js.map +0 -1
- package/utils/handle-framework.js +0 -9
- package/utils/handle-framework.js.map +0 -1
- package/utils/handle-state-name.js +0 -29
- package/utils/handle-state-name.js.map +0 -1
- package/utils/report-runtime-error-cls-client.js +0 -91
- package/utils/report-runtime-error-cls-client.js.map +0 -1
- /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
- /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
- /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
The in-room chat feature allows participants in a meeting to interact in real time through text, emojis, and more. This feature is built on the IM component capabilities of `tuikit-atomicx-vue3`, providing users with a convenient instant messaging experience.
|
|
2
|
+
|
|
3
|
+
## Use Cases
|
|
4
|
+
- **Online webinars:** While the presenter delivers a video talk, participants can ask questions or discuss via text.
|
|
5
|
+
|
|
6
|
+
- **Remote collaboration:** Team members can send text, images, files, and more while communicating.
|
|
7
|
+
|
|
8
|
+
- **Live teaching:** Students can send bullet comments or questions in the chat area, and the teacher can view and answer them in real time, enhancing classroom interactivity.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
Before integrating this feature, make sure the following conditions are met:
|
|
13
|
+
- **User status:** The user has completed login authentication via useLoginState (see the Integration Overview) and is already in a room as the room owner or a participant (see Room Management).
|
|
14
|
+
|
|
15
|
+
- **Environment dependency:** The project has correctly installed and imported `tuikit-atomicx-vue3`.
|
|
16
|
+
|
|
17
|
+
## Implementing In-Room Chat
|
|
18
|
+
|
|
19
|
+
This feature offers two integration approaches, and you can choose the one that best fits your business needs:
|
|
20
|
+
- **Approach 1 (Recommended):** Quick integration using UI components. Directly import the message list component ([MessageList](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/MessageList)) and the message input component ([MessageInput](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/MessageInput)) provided by `tuikit-atomicx-vue3`, with the lowest development cost.
|
|
21
|
+
|
|
22
|
+
- **Approach 2 (Advanced):** Custom integration using the low-level APIs. Implement your own UI and interaction logic based on the atomicx-core SDK API state hooks [useMessageListState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageListState) and [useMessageInputState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageInputState), offering the highest flexibility.
|
|
23
|
+
|
|
24
|
+
In-room chat
|
|
25
|
+
|
|
26
|
+
## Approach 1: Quick Integration Using UI Components
|
|
27
|
+
|
|
28
|
+
`tuikit-atomicx-vue3` provides two core components:
|
|
29
|
+
- [**MessageList**](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/MessageList)**:** The message list component, which displays the chat history and supports operations such as copying, recalling, and deleting messages.
|
|
30
|
+
|
|
31
|
+
- [**MessageInput**](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/packages/tuikit-atomicx-vue3/src/components/MessageInput)**:** The message input component, which supports sending text, emojis, images, and files, and can be automatically disabled based on the mute status.
|
|
32
|
+
|
|
33
|
+
### Step 1: Data Initialization
|
|
34
|
+
|
|
35
|
+
After the user successfully joins the room, you need to call the [setActiveConversation](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#setActiveConversation) API to initialize the chat data. We recommend listening for changes to [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#currentRoom) to handle this automatically.
|
|
36
|
+
|
|
37
|
+
> **Note:**
|
|
38
|
+
>
|
|
39
|
+
> - `GROUP` is a fixed prefix. The `setActiveConversation` argument must be ``GROUP${roomId}``; otherwise, messages cannot be sent or received properly.
|
|
40
|
+
> - `GROUP` is the fixed prefix for IM SDK group conversations (see [IM conversation types](https://web.sdk.qcloud.com/im/doc/zh-cn/Conversation.html)). Room chat is built on IM groups, so the conversation ID must be in the ``GROUP${roomId}`` format.
|
|
41
|
+
|
|
42
|
+
``` typescript
|
|
43
|
+
import { watch } from 'vue';
|
|
44
|
+
import { useConversationListState } from 'tuikit-atomicx-vue3/chat';
|
|
45
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
46
|
+
|
|
47
|
+
const { currentRoom } = useRoomState();
|
|
48
|
+
const { setActiveConversation } = useConversationListState();
|
|
49
|
+
|
|
50
|
+
// Listen for room ID changes and automatically switch to the corresponding IM group conversation
|
|
51
|
+
watch(() => currentRoom.value?.roomId, (roomId) => {
|
|
52
|
+
if (roomId) {
|
|
53
|
+
// Key step: set the current active conversation ID, using the rule "GROUP" + room ID
|
|
54
|
+
setActiveConversation(`GROUP${roomId}`);
|
|
55
|
+
}
|
|
56
|
+
}, { immediate: true });
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 2: Using the Components
|
|
60
|
+
|
|
61
|
+
In your page, you can directly combine these two components. At the same time, use [useRoomParticipantState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomParticipantState) to obtain the current user's mute status and control the availability of the input box.
|
|
62
|
+
|
|
63
|
+
> **Caution:**
|
|
64
|
+
>
|
|
65
|
+
|
|
66
|
+
> All TUIKit components must be wrapped inside UIKitProvider; otherwise, they cannot obtain their context dependencies, resulting in abnormal styles.
|
|
67
|
+
>
|
|
68
|
+
|
|
69
|
+
``` typescript
|
|
70
|
+
<template>
|
|
71
|
+
<UIKitProvider theme="light" language="en-US">
|
|
72
|
+
<div class="room-chat-container">
|
|
73
|
+
<!-- Message list component -->
|
|
74
|
+
<!-- messageActionList: configures the actions supported by long-pressing a message, such as copy, recall, and delete -->
|
|
75
|
+
<MessageList
|
|
76
|
+
class="message-list"
|
|
77
|
+
:messageActionList="['copy', 'recall', 'delete']"
|
|
78
|
+
/>
|
|
79
|
+
|
|
80
|
+
<!-- Message input component -->
|
|
81
|
+
<!-- disabled: disables the input box when the user is muted -->
|
|
82
|
+
<!-- hideSendButton: optional, hides the send button and uses Enter to send -->
|
|
83
|
+
<MessageInput
|
|
84
|
+
class="message-input"
|
|
85
|
+
:placeholder="inputPlaceholder"
|
|
86
|
+
:disabled="isMessageDisabled"
|
|
87
|
+
hideSendButton
|
|
88
|
+
/>
|
|
89
|
+
</div>
|
|
90
|
+
</UIKitProvider>
|
|
91
|
+
</template>
|
|
92
|
+
|
|
93
|
+
<script setup lang="ts">
|
|
94
|
+
import { computed } from 'vue';
|
|
95
|
+
import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
|
|
96
|
+
import { MessageInput, MessageList } from 'tuikit-atomicx-vue3/chat';
|
|
97
|
+
import { useRoomParticipantState } from 'tuikit-atomicx-vue3/room';
|
|
98
|
+
|
|
99
|
+
const { localParticipant } = useRoomParticipantState();
|
|
100
|
+
|
|
101
|
+
// Get the current user's mute status. isMessageDisabled is synced in real time by the room backend, with no need for the frontend to actively poll; the frontend only needs to bind this state to automatically respond to mute changes.
|
|
102
|
+
const isMessageDisabled = computed(() => localParticipant.value?.isMessageDisabled);
|
|
103
|
+
|
|
104
|
+
// Dynamically display the placeholder hint based on the status
|
|
105
|
+
const inputPlaceholder = computed(() =>
|
|
106
|
+
isMessageDisabled.value ? 'You have been muted' : 'Enter a message...'
|
|
107
|
+
);
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<style scoped>
|
|
111
|
+
.room-chat-container{display:flex;flex-direction:column;height:100%;padding:8px;gap:8px}.message-list{flex:1;overflow:hidden}.message-input{flex-shrink:0;border:1px solid #e0e0e0;border-radius:8px}
|
|
112
|
+
</style>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Step 3: Handling the Unread Message Count (Optional)
|
|
116
|
+
|
|
117
|
+
If the chat window is normally collapsed or closed, you need to count unread messages by listening for changes to [messageList](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#messageList), and show a hint in the UI (such as a badge on the chat icon).
|
|
118
|
+
``` typescript
|
|
119
|
+
import { ref, watch } from 'vue';
|
|
120
|
+
import { useMessageListState } from 'tuikit-atomicx-vue3/chat';
|
|
121
|
+
|
|
122
|
+
const { messageList } = useMessageListState();
|
|
123
|
+
const unreadCount = ref(0);
|
|
124
|
+
const isChatWindowOpen = ref(false); // Maintain this state according to your business logic
|
|
125
|
+
|
|
126
|
+
watch(() => messageList.value?.length, (newLength, oldLength) => {
|
|
127
|
+
// If this is the initial load or the data is empty, do not count
|
|
128
|
+
if (!newLength || newLength === 0) return;
|
|
129
|
+
|
|
130
|
+
// Only increase the unread count when the chat window is closed and a new message is received
|
|
131
|
+
if (!isChatWindowOpen.value && newLength > (oldLength || 0)) {
|
|
132
|
+
unreadCount.value += (newLength - (oldLength || 0));
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// Clear the unread count when the user opens the chat window
|
|
137
|
+
const openChatWindow = () => {
|
|
138
|
+
isChatWindowOpen.value = true;
|
|
139
|
+
unreadCount.value = 0;
|
|
140
|
+
};
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Approach 2: Custom Integration Using the Low-Level APIs
|
|
144
|
+
|
|
145
|
+
This section mainly explains how to implement a custom chat interface using the atomicx-core SDK APIs [useMessageListState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageListState) and [useMessageInputState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageInputState).
|
|
146
|
+
|
|
147
|
+
> **Caution:**
|
|
148
|
+
>
|
|
149
|
+
|
|
150
|
+
> `MessageInputState` supports integration with the `@tiptap/vue-3` editor by default. If you only need a simple text input (such as `<input>` or `<textarea>`), please **ignore** the editor-instance-bound APIs such as `setEditorInstance` and `setContent`, and simply use `updateRawValue` and `sendMessage`.
|
|
151
|
+
>
|
|
152
|
+
|
|
153
|
+
#### Step 1: Data Initialization
|
|
154
|
+
|
|
155
|
+
After the user successfully joins the room, you need to call the [setActiveConversation](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#setActiveConversation) API to initialize the chat data. We recommend listening for changes to [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#currentRoom) to handle this automatically.
|
|
156
|
+
|
|
157
|
+
> **Note:**
|
|
158
|
+
>
|
|
159
|
+
> - `GROUP` is a fixed prefix. The `setActiveConversation` argument must be ``GROUP${roomId}``; otherwise, messages cannot be sent or received properly.
|
|
160
|
+
> - When switching rooms or leaving a room, we recommend resetting or clearing the active conversation to avoid sending messages to the wrong conversation.
|
|
161
|
+
|
|
162
|
+
``` typescript
|
|
163
|
+
import { watch } from 'vue';
|
|
164
|
+
import { useConversationListState } from 'tuikit-atomicx-vue3/chat';
|
|
165
|
+
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
166
|
+
|
|
167
|
+
const { currentRoom } = useRoomState();
|
|
168
|
+
const { setActiveConversation } = useConversationListState();
|
|
169
|
+
|
|
170
|
+
// Listen for room ID changes and automatically switch to the corresponding IM group conversation
|
|
171
|
+
watch(() => currentRoom.value?.roomId, (roomId) => {
|
|
172
|
+
if (roomId) {
|
|
173
|
+
// Key step: set the current active conversation ID, using the rule "GROUP" + room ID
|
|
174
|
+
setActiveConversation(`GROUP${roomId}`);
|
|
175
|
+
}
|
|
176
|
+
}, { immediate: true });
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
#### Step 2: Getting the Message List
|
|
180
|
+
|
|
181
|
+
Use [useMessageListState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageListState) to get the message list of the current conversation. `messageList` is reactive data and automatically updates with newly received messages.
|
|
182
|
+
``` typescript
|
|
183
|
+
import { useMessageListState } from 'tuikit-atomicx-vue3/chat';
|
|
184
|
+
|
|
185
|
+
const {
|
|
186
|
+
messageList, // Reactive message list
|
|
187
|
+
loadMoreOlderMessage, // Method to load more historical messages
|
|
188
|
+
hasMoreOlderMessage, // Whether there are more historical messages
|
|
189
|
+
} = useMessageListState();
|
|
190
|
+
|
|
191
|
+
// Example: render the message list
|
|
192
|
+
// <div v-for="msg in messageList" :key="msg.ID">
|
|
193
|
+
// {{ msg.payload.text }}
|
|
194
|
+
// </div>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### Step 3: Sending Messages
|
|
198
|
+
|
|
199
|
+
Use [useMessageInputState](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageInputState) to manage the input box content and send messages.
|
|
200
|
+
``` typescript
|
|
201
|
+
import { useMessageInputState } from 'tuikit-atomicx-vue3/chat';
|
|
202
|
+
|
|
203
|
+
const {
|
|
204
|
+
inputRawValue, // Reactive data: the current input content
|
|
205
|
+
updateRawValue, // Method: update the input content (automatically triggers the "peer is typing" state)
|
|
206
|
+
sendMessage // Method: send a message
|
|
207
|
+
} = useMessageInputState();
|
|
208
|
+
|
|
209
|
+
const handleSend = async () => {
|
|
210
|
+
// Validate that the input is not empty
|
|
211
|
+
if (!inputRawValue.value) return;
|
|
212
|
+
|
|
213
|
+
try {
|
|
214
|
+
// 1. Send the message
|
|
215
|
+
// Option A: send the current content of inputRawValue
|
|
216
|
+
await sendMessage();
|
|
217
|
+
|
|
218
|
+
// Option B: directly send specified text (independent of inputRawValue)
|
|
219
|
+
// await sendMessage('Hello World');
|
|
220
|
+
|
|
221
|
+
console.log('Sent successfully');
|
|
222
|
+
|
|
223
|
+
// 2. Clear the input box after sending successfully
|
|
224
|
+
// Key point: in non-rich-text mode, be sure to use updateRawValue('') to clear it
|
|
225
|
+
// Do not use setContent(''), which only takes effect after an editor instance is bound
|
|
226
|
+
updateRawValue('');
|
|
227
|
+
} catch (error) {
|
|
228
|
+
console.error('Failed to send', error);
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
// Example: bind a native input box
|
|
233
|
+
// <input
|
|
234
|
+
// :value="inputRawValue"
|
|
235
|
+
// @input="(e) => updateRawValue(e.target.value)"
|
|
236
|
+
// @keyup.enter="handleSend"
|
|
237
|
+
// />
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### Step 4: Loading Historical Messages
|
|
241
|
+
|
|
242
|
+
Use the [loadMoreOlderMessage](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageListState) method to fetch historical messages page by page. This is usually triggered when scrolling to the top of the list.
|
|
243
|
+
|
|
244
|
+
> **Caution:**
|
|
245
|
+
>
|
|
246
|
+
|
|
247
|
+
> After loading historical messages, you usually need to manually adjust the scrollbar position to keep the current viewport from jumping.
|
|
248
|
+
>
|
|
249
|
+
|
|
250
|
+
``` typescript
|
|
251
|
+
import { useMessageListState } from 'tuikit-atomicx-vue3/chat';
|
|
252
|
+
|
|
253
|
+
const {
|
|
254
|
+
hasMoreOlderMessage,
|
|
255
|
+
loadMoreOlderMessage
|
|
256
|
+
} = useMessageListState();
|
|
257
|
+
|
|
258
|
+
const loadHistory = async () => {
|
|
259
|
+
if (hasMoreOlderMessage.value) {
|
|
260
|
+
// Record the scroll height before loading
|
|
261
|
+
// const previousHeight = scrollContainer.value.scrollHeight;
|
|
262
|
+
|
|
263
|
+
await loadMoreOlderMessage();
|
|
264
|
+
|
|
265
|
+
// Restore the scroll position after the DOM updates
|
|
266
|
+
// nextTick(() => {
|
|
267
|
+
// const currentHeight = scrollContainer.value.scrollHeight;
|
|
268
|
+
// scrollContainer.value.scrollTop += (currentHeight - previousHeight);
|
|
269
|
+
// });
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
#### Step 5: Advanced Feature (Read Receipts)
|
|
275
|
+
|
|
276
|
+
If you need the read receipt feature, you can use [setEnableReadReceipt](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#setEnableReadReceipt).
|
|
277
|
+
``` typescript
|
|
278
|
+
const {
|
|
279
|
+
setEnableReadReceipt, // Enable/disable read receipts
|
|
280
|
+
} = useMessageListState();
|
|
281
|
+
|
|
282
|
+
// Enable read receipts
|
|
283
|
+
setEnableReadReceipt(true);
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Development Notes
|
|
287
|
+
- **Mute status synchronization**
|
|
288
|
+
|
|
289
|
+
`localParticipant.isMessageDisabled` is controlled by the room administrator. When the administrator enables "mute all" or mutes an individual user, this property is automatically updated. Be sure to bind this property to the input box's `disabled` state to restrict user speech on the frontend.
|
|
290
|
+
|
|
291
|
+
- **Conversation switching timing**
|
|
292
|
+
|
|
293
|
+
Make sure `setActiveConversation` is called after successfully joining the room and when `roomId` has a value. If it is called before joining the room, it may fail because the SDK has not finished initializing or the user is not logged in.
|
|
294
|
+
|
|
295
|
+
- **Container layout requirements (important)**
|
|
296
|
+
|
|
297
|
+
The message list component handles scrolling logic internally, so the **parent container must have a fixed height** (for example, `height: 100%` or a specific pixel value) and set `overflow: hidden`; otherwise, the list will grow indefinitely and cannot be scrolled.
|
|
298
|
+
|
|
299
|
+
- **Message type handling**
|
|
300
|
+
|
|
301
|
+
`messageList` contains messages of various types (text, image, file, etc.). When rendering them custom, you need to handle them differently based on `msg.type`.
|
|
302
|
+
|
|
303
|
+
- **Input state management**
|
|
304
|
+
|
|
305
|
+
Updating the input content with `updateRawValue` automatically triggers the "peer is typing" status notification (if supported). If you only use `inputRawValue.value = 'xxx'`, this status may not be triggered.
|
|
306
|
+
|
|
307
|
+
- **Maintaining scroll position for historical messages**
|
|
308
|
+
|
|
309
|
+
In custom development, after calling `loadMoreOlderMessage` to load historical messages, the DOM height increases. To prevent the view from jumping, you need to record `scrollHeight` before loading, then compute the height difference after loading (`nextTick`) and adjust `scrollTop`.
|
|
310
|
+
|
|
311
|
+
- **Scrolling strategy for new messages**
|
|
312
|
+
|
|
313
|
+
We recommend implementing "smart scrolling" logic: when the user is at the bottom of the list, automatically scroll to the bottom when a new message is received; when the user is browsing historical messages, keep the current position unchanged and show a "new message" hint bubble.
|
|
314
|
+
|
|
315
|
+
- **Conversation ID format requirements**
|
|
316
|
+
|
|
317
|
+
When calling `setActiveConversation`, you must use the ``GROUP${roomId}`` format (`GROUP` is a fixed prefix). This is the standard format for IM SDK group conversations and cannot be customized or have its prefix omitted; otherwise, messages cannot be sent or received properly.
|
|
318
|
+
|
|
319
|
+
## FAQ
|
|
320
|
+
|
|
321
|
+
**Switching to the group conversation fails or the message list has no content?**
|
|
322
|
+
|
|
323
|
+
Make sure you call `setActiveConversation('GROUP' + roomId)` only after logging in and successfully joining the room; not being logged in or an empty roomId will cause it to fail.
|
|
324
|
+
|
|
325
|
+
**Messages are not received or the list is blank?**
|
|
326
|
+
|
|
327
|
+
Check whether the current active conversation is correct (the `GROUP` prefix + roomId) and whether the network/authentication is working; if necessary, call `setActiveConversation` again to refresh the active conversation.
|
|
328
|
+
|
|
329
|
+
**The unread count is not cleared?**
|
|
330
|
+
|
|
331
|
+
You need to maintain the unread count logic manually. Update the count when the chat window is opened, or when a new message is received while the window is closed.
|
|
332
|
+
|
|
333
|
+
**A muted user can still click send?**
|
|
334
|
+
|
|
335
|
+
Make sure the frontend UI disables the send button and input box based on the `isMessageDisabled` status. Although the server also intercepts such messages, disabling them on the frontend provides a better experience.
|
|
336
|
+
|
|
337
|
+
**Custom avatar/nickname display?**
|
|
338
|
+
|
|
339
|
+
You can use the `MessageList` slot or a custom Message component to prioritize displaying the room's `nameCard` and customize the avatar style, and so on.
|
|
340
|
+
|
|
341
|
+
**How do I send images or files in the custom approach?**
|
|
342
|
+
|
|
343
|
+
The `sendMessage` method supports passing an `InputContent[]` array. You can construct an array containing `type: 'image'` or `type: 'file'` along with the corresponding `file` object to send rich-media messages.
|
|
344
|
+
``` typescript
|
|
345
|
+
import { useMessageInputState } from 'tuikit-atomicx-vue3/chat';
|
|
346
|
+
|
|
347
|
+
const { sendMessage } = useMessageInputState();
|
|
348
|
+
|
|
349
|
+
// Example: send an image
|
|
350
|
+
// const file = ...; // A File object obtained from an input type="file"
|
|
351
|
+
await sendMessage([{ type: 'image', file }]);
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**How do I change the default styles of the UI components?**
|
|
355
|
+
|
|
356
|
+
The class names of `tuikit-atomicx-vue3` components generally remain stable. You can use CSS deep selectors (such as Vue's `:deep()`) to override the default styles. For example, `.message-list :deep(.tui-message-bubble) { background-color: #f0f0f0; }`.
|
|
357
|
+
|
|
358
|
+
## **Example Project**
|
|
359
|
+
|
|
360
|
+
Tencent Cloud provides the example project [atomicx-vite-vue3-ts](https://github.com/Tencent-RTC/TUIRoomKit/tree/main/Web/example/atomicx-vite-vue3-ts) on GitHub, which you can refer to for implementing full RoomKit functionality.
|
|
361
|
+
|
|
362
|
+
## API Reference
|
|
363
|
+
|
|
364
|
+
|**State/Component**|**Description**|**API Reference**|
|
|
365
|
+
|---------|---------|---------|
|
|
366
|
+
|**useRoomState**|Room state management (create, join, schedule, etc.)|[API Reference](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomState)|
|
|
367
|
+
|**useRoomParticipantState**|Room participant management (participant list, permission control)|[API Reference](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-RoomParticipantState)|
|
|
368
|
+
|**useConversationListState**|Conversation list management|[API Reference](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-ConversationListState)|
|
|
369
|
+
|**useMessageListState**|Message list management|[API Reference](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageListState)|
|
|
370
|
+
|**useMessageInputState**|Message input management|[API Reference](https://web.sdk.qcloud.com/trtc/live/web/doc/en/index.html#module-MessageInputState)|
|