@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
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
The in-room chat feature allows members within a meeting to interact in real-time through text, emojis, and other forms. This feature is implemented based on the IM component capabilities of `tuikit-atomicx-vue3`, providing users with a convenient instant messaging experience.
|
|
2
|
-
|
|
3
|
-
## Use Cases
|
|
4
|
-
- **Online Seminars:** When speakers give video presentations, participants can ask questions or discuss through text.
|
|
5
|
-
|
|
6
|
-
- **Remote Collaboration:** Team members can send text, images, files, etc. during communication.
|
|
7
|
-
|
|
8
|
-
- **Live Teaching:** Students can send bullet comments or questions in the chat area, and teachers can view and answer in real-time, enhancing classroom interaction.
|
|
9
|
-
|
|
10
|
-
## Prerequisites
|
|
11
|
-
|
|
12
|
-
Before integrating this feature, please ensure the following conditions are met:
|
|
13
|
-
- **User Status:** The user has completed login authentication through useLoginState, refer to Integration Overview, and is already in a room as the room owner or member, refer to Room Management.
|
|
14
|
-
|
|
15
|
-
- **Environment Dependencies:** The project has correctly installed and imported `tuikit-atomicx-vue3`.
|
|
16
|
-
|
|
17
|
-
## Implementing In-Room Chat Feature
|
|
18
|
-
|
|
19
|
-
This feature provides two integration solutions. You can choose the most suitable one according to business needs:
|
|
20
|
-
- **Solution 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 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
|
-
- **Solution 2 (Advanced):** Custom integration using underlying API. Based on atomicx-core SDK API [useMessageListState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageListState) and [useMessageInputState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageInputState) state hooks to implement UI and interaction logic yourself, with the highest flexibility.
|
|
23
|
-
|
|
24
|
-
In-room chat
|
|
25
|
-
|
|
26
|
-
## Solution 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)**:** Message list component that displays 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)**:** Message input component that supports sending text, emojis, images, and files, and can be automatically disabled based on mute status.
|
|
32
|
-
|
|
33
|
-
### Step 1: Data Initialization
|
|
34
|
-
|
|
35
|
-
After the user successfully joins a room, you need to call the [setActiveConversation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setActiveConversation) interface to initialize chat data. It is recommended to listen for changes in [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentRoom) to handle this automatically.
|
|
36
|
-
|
|
37
|
-
> **Note:**
|
|
38
|
-
>
|
|
39
|
-
> - `GROUP` is a fixed prefix, the `setActiveConversation` parameter must be ``GROUP${roomId}``, otherwise messages cannot be sent or received normally.
|
|
40
|
-
> - `GROUP` is the fixed prefix for IM SDK group conversations (refer to [IM Conversation Types](https://web.sdk.qcloud.com/im/doc/zh-cn/Conversation.html)). Room chat is based 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, the rule is "GROUP" + room ID
|
|
54
|
-
setActiveConversation(`GROUP${roomId}`);
|
|
55
|
-
}
|
|
56
|
-
}, { immediate: true });
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Step 2: Use Components
|
|
60
|
-
|
|
61
|
-
In your page, you can directly combine these two components. Also combine [useRoomParticipantState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomParticipantState) to get the current user's mute status and control the availability of the input box.
|
|
62
|
-
|
|
63
|
-
> **Note:**
|
|
64
|
-
>
|
|
65
|
-
|
|
66
|
-
> All TUIKit components must be wrapped inside UIKitProvider, otherwise they will not be able to obtain context dependencies, causing style anomalies.
|
|
67
|
-
>
|
|
68
|
-
|
|
69
|
-
``` typescript
|
|
70
|
-
<template>
|
|
71
|
-
<UIKitProvider theme="light" language="zh-CN">
|
|
72
|
-
<div class="room-chat-container">
|
|
73
|
-
<!-- Message list component -->
|
|
74
|
-
<!-- messageActionList: Configure operations supported by long-pressing messages, such as copy, recall, delete -->
|
|
75
|
-
<MessageList
|
|
76
|
-
class="message-list"
|
|
77
|
-
:messageActionList="['copy', 'recall', 'delete']"
|
|
78
|
-
/>
|
|
79
|
-
|
|
80
|
-
<!-- Message input component -->
|
|
81
|
-
<!-- disabled: Disable input box when user is muted -->
|
|
82
|
-
<!-- hideSendButton: Optional, hide send button, use 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 current user's mute status, isMessageDisabled is synchronized in real-time by the room backend, no need for frontend active polling, frontend only needs to bind this state to automatically respond to mute changes.
|
|
102
|
-
const isMessageDisabled = computed(() => localParticipant.value?.isMessageDisabled);
|
|
103
|
-
|
|
104
|
-
// Dynamically display placeholder prompt based on status
|
|
105
|
-
const inputPlaceholder = computed(() =>
|
|
106
|
-
isMessageDisabled.value ? 'You have been muted' : 'Please enter 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: Handle Unread Message Count (Optional)
|
|
116
|
-
|
|
117
|
-
If the chat window is usually collapsed or closed, you need to listen for changes in [messageList](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#messageList) to count unread messages and provide prompts on the UI (such as chat icon badges).
|
|
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); // Need to maintain this state according to your business logic
|
|
125
|
-
|
|
126
|
-
watch(() => messageList.value?.length, (newLength, oldLength) => {
|
|
127
|
-
// If this is the first load or data is empty, do not count
|
|
128
|
-
if (!newLength || newLength === 0) return;
|
|
129
|
-
|
|
130
|
-
// Only increase unread count when chat window is closed and new messages are received
|
|
131
|
-
if (!isChatWindowOpen.value && newLength > (oldLength || 0)) {
|
|
132
|
-
unreadCount.value += (newLength - (oldLength || 0));
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
// Clear unread count when user opens chat window
|
|
137
|
-
const openChatWindow = () => {
|
|
138
|
-
isChatWindowOpen.value = true;
|
|
139
|
-
unreadCount.value = 0;
|
|
140
|
-
};
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Solution 2: Custom Integration Using Underlying API
|
|
144
|
-
|
|
145
|
-
This section mainly introduces how to implement a custom chat interface through atomicx-core SDK API [useMessageListState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageListState) and [useMessageInputState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageInputState) interfaces.
|
|
146
|
-
|
|
147
|
-
> **Note:**
|
|
148
|
-
>
|
|
149
|
-
|
|
150
|
-
> `MessageInputState` supports integration with `@tiptap/vue-3` editor by default. If you only need a simple text input box (e.g., `<input>` or `<textarea>`), please **ignore** `setEditorInstance`, `setContent` and other APIs bound to editor instances, and directly use `updateRawValue` and `sendMessage`.
|
|
151
|
-
>
|
|
152
|
-
|
|
153
|
-
#### Step 1: Data Initialization
|
|
154
|
-
|
|
155
|
-
After the user successfully joins a room, you need to call the [setActiveConversation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setActiveConversation) interface to initialize chat data. It is recommended to listen for changes in [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentRoom) to handle this automatically.
|
|
156
|
-
|
|
157
|
-
> **Note:**
|
|
158
|
-
>
|
|
159
|
-
> - `GROUP` is a fixed prefix, the `setActiveConversation` parameter must be ``GROUP${roomId}``, otherwise messages cannot be sent or received normally.
|
|
160
|
-
> - When switching rooms or exiting a room, it is recommended to reset or clear 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, the rule is "GROUP" + room ID
|
|
174
|
-
setActiveConversation(`GROUP${roomId}`);
|
|
175
|
-
}
|
|
176
|
-
}, { immediate: true });
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
#### Step 2: Get Message List
|
|
180
|
-
|
|
181
|
-
Use [useMessageListState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageListState) to get the message list of the current conversation. `messageList` is reactive data and will automatically update 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 history messages
|
|
188
|
-
hasMoreOlderMessage, // Whether there are more history messages
|
|
189
|
-
} = useMessageListState();
|
|
190
|
-
|
|
191
|
-
// Example: Render message list
|
|
192
|
-
// <div v-for="msg in messageList" :key="msg.ID">
|
|
193
|
-
// {{ msg.payload.text }}
|
|
194
|
-
// </div>
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
#### Step 3: Send Messages
|
|
198
|
-
|
|
199
|
-
Use [useMessageInputState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageInputState) to manage input box content and send messages.
|
|
200
|
-
``` typescript
|
|
201
|
-
import { useMessageInputState } from 'tuikit-atomicx-vue3/chat';
|
|
202
|
-
|
|
203
|
-
const {
|
|
204
|
-
inputRawValue, // Reactive data: current input content
|
|
205
|
-
updateRawValue, // Method: Update input content (will automatically trigger "other party is typing" status)
|
|
206
|
-
sendMessage // Method: Send message
|
|
207
|
-
} = useMessageInputState();
|
|
208
|
-
|
|
209
|
-
const handleSend = async () => {
|
|
210
|
-
// Validate non-empty
|
|
211
|
-
if (!inputRawValue.value) return;
|
|
212
|
-
|
|
213
|
-
try {
|
|
214
|
-
// 1. Send message
|
|
215
|
-
// Method A: Send the content of current inputRawValue
|
|
216
|
-
await sendMessage();
|
|
217
|
-
|
|
218
|
-
// Method B: Directly send specified text (not dependent on inputRawValue)
|
|
219
|
-
// await sendMessage('Hello World');
|
|
220
|
-
|
|
221
|
-
console.log('Sent successfully');
|
|
222
|
-
|
|
223
|
-
// 2. Clear input box after successful send
|
|
224
|
-
// Key point: In non-rich text mode, must use updateRawValue('') to clear
|
|
225
|
-
// Do not use setContent(''), this method only takes effect after binding an editor instance
|
|
226
|
-
updateRawValue('');
|
|
227
|
-
} catch (error) {
|
|
228
|
-
console.error('Send failed', error);
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
// Example: Bind to 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: Load History Messages
|
|
241
|
-
|
|
242
|
-
Use the [loadMoreOlderMessage](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageListState) method to paginate and pull history messages. Usually triggered when scrolling to the top of the list.
|
|
243
|
-
|
|
244
|
-
> **Note:**
|
|
245
|
-
>
|
|
246
|
-
|
|
247
|
-
> After loading history messages, you usually need to manually adjust the scroll position to keep the current viewing perspective 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 scroll height before loading
|
|
261
|
-
// const previousHeight = scrollContainer.value.scrollHeight;
|
|
262
|
-
|
|
263
|
-
await loadMoreOlderMessage();
|
|
264
|
-
|
|
265
|
-
// Restore scroll position after DOM update
|
|
266
|
-
// nextTick(() => {
|
|
267
|
-
// const currentHeight = scrollContainer.value.scrollHeight;
|
|
268
|
-
// scrollContainer.value.scrollTop += (currentHeight - previousHeight);
|
|
269
|
-
// });
|
|
270
|
-
}
|
|
271
|
-
};
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
#### Step 5: Advanced Features (Read Receipts)
|
|
275
|
-
|
|
276
|
-
If you need read receipt functionality, you can use [setEnableReadReceipt](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/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 room administrators. When administrators enable "mute all" or individually mute a user, this property will automatically update. Please be sure to bind this property to the input box's `disabled` state to restrict user speaking at the frontend level.
|
|
290
|
-
|
|
291
|
-
- **Conversation Switch Timing**
|
|
292
|
-
|
|
293
|
-
Ensure `setActiveConversation` is called after successfully entering the room and when `roomId` has a value. If called before entering the room, it may fail because the SDK has not finished initialization or is not logged in.
|
|
294
|
-
|
|
295
|
-
- **Container Layout Requirements (Important)**
|
|
296
|
-
|
|
297
|
-
The message list component internally handles scrolling logic, so **the parent container must have a fixed height** (e.g., `height: 100%` or specific pixel value) and set `overflow: hidden`, otherwise the list will stretch infinitely and cannot scroll.
|
|
298
|
-
|
|
299
|
-
- **Message Type Handling**
|
|
300
|
-
|
|
301
|
-
`messageList` contains multiple types of messages (text, images, files, etc.). When customizing rendering, you need to distinguish and handle according to `msg.type`.
|
|
302
|
-
|
|
303
|
-
- **Input State Management**
|
|
304
|
-
|
|
305
|
-
Using `updateRawValue` to update input content will automatically trigger "other party is typing" status notification (if supported). Using only `inputRawValue.value = 'xxx'` may not trigger this status.
|
|
306
|
-
|
|
307
|
-
- **History Message Scroll Maintenance**
|
|
308
|
-
|
|
309
|
-
In custom development, after calling `loadMoreOlderMessage` to load history messages, the DOM height will increase. To prevent view jumping, you need to record `scrollHeight` before loading, and adjust `scrollTop` after loading (`nextTick`) by calculating the height difference.
|
|
310
|
-
|
|
311
|
-
- **New Message Scroll Strategy**
|
|
312
|
-
|
|
313
|
-
It is recommended to implement "smart scroll" logic: when users are at the bottom of the list, automatically scroll to the bottom when receiving new messages; when users are browsing history messages, keep the current position unchanged and display a "new message" prompt 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, cannot be customized or prefix omitted, otherwise messages cannot be sent or received normally.
|
|
318
|
-
|
|
319
|
-
## Common Questions
|
|
320
|
-
|
|
321
|
-
**Failed to switch to group conversation or message list is empty?**
|
|
322
|
-
|
|
323
|
-
Ensure you call `setActiveConversation('GROUP' + roomId)` after successful login and room entry; not logged in or empty roomId will cause failure.
|
|
324
|
-
|
|
325
|
-
**Cannot receive messages or list is blank?**
|
|
326
|
-
|
|
327
|
-
Check if the current active conversation is correct (`GROUP` prefix + roomId), and whether network/authentication is normal; if necessary, reset the active conversation `setActiveConversation` to refresh.
|
|
328
|
-
|
|
329
|
-
**Unread count not clearing?**
|
|
330
|
-
|
|
331
|
-
You need to manually maintain unread count logic. Update count when opening chat window, or when receiving new messages but window is closed.
|
|
332
|
-
|
|
333
|
-
**Can still click send when muted?**
|
|
334
|
-
|
|
335
|
-
Please ensure frontend UI disables send button and input box according to `isMessageDisabled` status. Although the server will also intercept, frontend disable provides better experience.
|
|
336
|
-
|
|
337
|
-
**Custom avatar/nickname display?**
|
|
338
|
-
|
|
339
|
-
Can use `MessageList` slot or custom Message component, prioritize displaying `nameCard` within the room, and customize avatar styles, etc.
|
|
340
|
-
|
|
341
|
-
**How to send images or files in custom solution?**
|
|
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 implement rich media message sending.
|
|
344
|
-
``` typescript
|
|
345
|
-
import { useMessageInputState } from 'tuikit-atomicx-vue3/chat';
|
|
346
|
-
|
|
347
|
-
const { sendMessage } = useMessageInputState();
|
|
348
|
-
|
|
349
|
-
// Example: Send image
|
|
350
|
-
// const file = ...; // File object obtained from input type="file"
|
|
351
|
-
await sendMessage([{ type: 'image', file }]);
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**How to modify default styles of UI components?**
|
|
355
|
-
|
|
356
|
-
Component class names in `tuikit-atomicx-vue3` are usually stable. You can use CSS deep selectors (e.g., Vue's `:deep()`) to override default styles. For example `.message-list :deep(.tui-message-bubble) { background-color: #f0f0f0; }`.
|
|
357
|
-
|
|
358
|
-
## **Sample Project**
|
|
359
|
-
|
|
360
|
-
Tencent Cloud provides a sample 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 complete RoomKit functionality.
|
|
361
|
-
|
|
362
|
-
## API Documentation
|
|
363
|
-
| **State/Component** | **Feature Description** | **API Documentation** |
|
|
364
|
-
| --- | --- | --- |
|
|
365
|
-
| **useRoomState** | Room state management (create, join, schedule, etc.) | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) |
|
|
366
|
-
| **useRoomParticipantState** | Room participant management (member list, permission control) | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomParticipantState) |
|
|
367
|
-
| **useConversationListState** | Conversation list management | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-ConversationListState) |
|
|
368
|
-
| **useMessageListState** | Message list management | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageListState) |
|
|
369
|
-
| **useMessageInputState** | Message input management | [API Documentation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-MessageInputState) |
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
This document will guide you in detail on how to use Atomicx's [useRoomState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) to manage the complete lifecycle of a room, including creating, joining, leaving, and ending a room, as well as handling key room status notifications. The following sequence diagram demonstrates the main process from room creation to destruction.
|
|
2
|
-
|
|
3
|
-
## Feature Introduction
|
|
4
|
-
|
|
5
|
-
[useRoomState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState) is the core Hook responsible for room management in the Atomicx solution. It encapsulates complex underlying signaling processes, and developers can drive room state through simple reactive data and method calls.
|
|
6
|
-
- **Create & Join:** Create and join a room through [createAndJoinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#createAndJoinRoom) method, or join an existing room through [joinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#joinRoom) method.
|
|
7
|
-
|
|
8
|
-
- **Real-time State Sync:** The `useRoomState` Hook internally maintains [currentRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#currentRoom) reactive data, automatically synchronizing room name, mode, member count and other information.
|
|
9
|
-
|
|
10
|
-
- **Role-based Exit Mechanism:** Provides clear operational boundaries for different roles. Regular members can use [leaveRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#leaveRoom) to exit; while the room owner (host) has [endRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#endRoom) permission to end the room and destroy room resources with one click.
|
|
11
|
-
|
|
12
|
-
## **Prerequisites**
|
|
13
|
-
|
|
14
|
-
User has completed login authentication through [useLoginState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-LoginState), please refer to Integration Overview.
|
|
15
|
-
|
|
16
|
-
## Implementing Room Management
|
|
17
|
-
|
|
18
|
-
### Step 1: Import useRoomState
|
|
19
|
-
``` typescript
|
|
20
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
21
|
-
|
|
22
|
-
const {
|
|
23
|
-
createAndJoinRoom,
|
|
24
|
-
joinRoom,
|
|
25
|
-
leaveRoom,
|
|
26
|
-
endRoom,
|
|
27
|
-
currentRoom
|
|
28
|
-
} = useRoomState();
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Step 2: Create Room
|
|
32
|
-
|
|
33
|
-
Create room (room owner): Use [createAndJoinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#createAndJoinRoom), after successful call the user will automatically obtain room owner permissions.
|
|
34
|
-
|
|
35
|
-
> **Note:**
|
|
36
|
-
>
|
|
37
|
-
|
|
38
|
-
> The roomId specified when creating a room is recommended to be generated and issued by the business backend to ensure global uniqueness and stability of the room ID.
|
|
39
|
-
>
|
|
40
|
-
|
|
41
|
-
- **Example 1: User creates room**
|
|
42
|
-
|
|
43
|
-
``` typescript
|
|
44
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
45
|
-
const { createAndJoinRoom } = useRoomState();
|
|
46
|
-
|
|
47
|
-
await createAndJoinRoom({
|
|
48
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
49
|
-
})
|
|
50
|
-
```
|
|
51
|
-
- **Example 2: User creates room and specifies room name**
|
|
52
|
-
|
|
53
|
-
``` typescript
|
|
54
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
55
|
-
const { createAndJoinRoom } = useRoomState();
|
|
56
|
-
|
|
57
|
-
await createAndJoinRoom({
|
|
58
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
59
|
-
options: {
|
|
60
|
-
roomName: 'My Temporary Room'
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
```
|
|
64
|
-
- **Example 3: User creates password-protected room**
|
|
65
|
-
|
|
66
|
-
``` typescript
|
|
67
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
68
|
-
const { createAndJoinRoom } = useRoomState();
|
|
69
|
-
|
|
70
|
-
await createAndJoinRoom({
|
|
71
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
72
|
-
options: {
|
|
73
|
-
roomName: 'My Temporary Room',
|
|
74
|
-
password: '123456',
|
|
75
|
-
}
|
|
76
|
-
})
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
> **Note:**
|
|
80
|
-
>
|
|
81
|
-
|
|
82
|
-
> Creator automatically joins the room when calling [createAndJoinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#createAndJoinRoom), no password required.
|
|
83
|
-
>
|
|
84
|
-
|
|
85
|
-
- **Example 4: User creates room and configures member management settings**
|
|
86
|
-
|
|
87
|
-
``` typescript
|
|
88
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
89
|
-
const { createAndJoinRoom } = useRoomState();
|
|
90
|
-
|
|
91
|
-
await createAndJoinRoom({
|
|
92
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
93
|
-
options: {
|
|
94
|
-
roomName: 'My Temporary Room',
|
|
95
|
-
password: '123456',
|
|
96
|
-
isAllMicrophoneDisabled: true, // Enable mute all
|
|
97
|
-
isAllCameraDisabled: true, // Enable disable all videos
|
|
98
|
-
isAllScreenShareDisabled: true, // Enable disable all screen sharing
|
|
99
|
-
isAllMessageDisabled: true, // Enable disable all in-meeting messages
|
|
100
|
-
}
|
|
101
|
-
})
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
> **Note:**
|
|
105
|
-
>
|
|
106
|
-
|
|
107
|
-
> Member management configuration only applies to regular members, room owner and administrators are not restricted. To modify member management configuration after room creation or manage individual member permissions, please refer to Member Management.
|
|
108
|
-
>
|
|
109
|
-
|
|
110
|
-
### Step 3: User joins existing room
|
|
111
|
-
|
|
112
|
-
Logged-in users can call [joinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#joinRoom) to join an existing room. Atomicx only supports users joining one room at a time.
|
|
113
|
-
- **Example 1: User joins room**
|
|
114
|
-
|
|
115
|
-
``` typescript
|
|
116
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
117
|
-
const { joinRoom } = useRoomState();
|
|
118
|
-
|
|
119
|
-
await joinRoom({
|
|
120
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
121
|
-
})
|
|
122
|
-
```
|
|
123
|
-
- **Example 2: User joins password-protected room**
|
|
124
|
-
|
|
125
|
-
``` typescript
|
|
126
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
127
|
-
const { joinRoom } = useRoomState();
|
|
128
|
-
|
|
129
|
-
await joinRoom({
|
|
130
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
131
|
-
password: '123456',
|
|
132
|
-
})
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Step 4: Update room information
|
|
136
|
-
|
|
137
|
-
Room owner can use [updateRoomInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#updateRoomInfo) to update room name and password after creating a room.
|
|
138
|
-
``` typescript
|
|
139
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
140
|
-
const { updateRoomInfo } = useRoomState();
|
|
141
|
-
|
|
142
|
-
await updateRoomInfo({
|
|
143
|
-
roomId: 'YOUR_ROOM_ID', // Specify room ID, generated by business backend
|
|
144
|
-
options: {
|
|
145
|
-
roomName: 'New Room Name',
|
|
146
|
-
password: '234567',
|
|
147
|
-
},
|
|
148
|
-
})
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
> **Note:**
|
|
152
|
-
>
|
|
153
|
-
|
|
154
|
-
> Room owner must be in the room to call [updateRoomInfo](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#updateRoomInfo). If room owner has left the room, they need to rejoin before updating room information.
|
|
155
|
-
>
|
|
156
|
-
|
|
157
|
-
### Step 5: Leave room
|
|
158
|
-
|
|
159
|
-
Both room owner and regular users can call [leaveRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#leaveRoom) interface to leave the room. Prerequisite for using this interface is that the user has joined the room through [createAndJoinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#createAndJoinRoom) or [joinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#joinRoom) interface.
|
|
160
|
-
``` typescript
|
|
161
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
162
|
-
const { leaveRoom } = useRoomState();
|
|
163
|
-
|
|
164
|
-
await leaveRoom();
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Step 6: Destroy room
|
|
168
|
-
|
|
169
|
-
Only room owner can call [endRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#endRoom) interface to destroy the room. Prerequisite for using this interface is that the user has created a room through [createAndJoinRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#createAndJoinRoom) or has obtained room owner status.
|
|
170
|
-
``` typescript
|
|
171
|
-
import { useRoomState } from 'tuikit-atomicx-vue3/room';
|
|
172
|
-
const { endRoom } = useRoomState();
|
|
173
|
-
|
|
174
|
-
await endRoom();
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
> **Note:**
|
|
178
|
-
>
|
|
179
|
-
> - If room owner leaves the room without calling [endRoom](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#endRoom), the room will continue to exist until automatic reclamation conditions are met (6 consecutive hours without users).
|
|
180
|
-
> - Room owner can transfer owner status to other users through [transferOwner](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#transferOwner) interface.
|
|
181
|
-
|
|
182
|
-
### Step 7: Handle abnormal exit
|
|
183
|
-
|
|
184
|
-
#### Handle room destroyed event
|
|
185
|
-
|
|
186
|
-
Regular users can handle room destruction business interaction by listening to `RoomEvent.onRoomEnded` event.
|
|
187
|
-
``` typescript
|
|
188
|
-
import { useRoomState, RoomEvent } from 'tuikit-atomicx-vue3/room';
|
|
189
|
-
import { TUIMessageBox } from '@tencentcloud/uikit-base-component-vue3';
|
|
190
|
-
const { subscribeEvent, unsubscribeEvent } = useRoomState();
|
|
191
|
-
|
|
192
|
-
function onRoomEnded() {
|
|
193
|
-
TUIMessageBox.alert({
|
|
194
|
-
title: 'Notice',
|
|
195
|
-
content: 'Room owner has ended the room',
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// Subscribe to RoomEvent when component loads
|
|
200
|
-
subscribeEvent(RoomEvent.onRoomEnded, onRoomEnded);
|
|
201
|
-
// Unsubscribe from RoomEvent when component is destroyed
|
|
202
|
-
unsubscribeEvent(RoomEvent.onRoomEnded, onRoomEnded);
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
#### Handle user kicked from room event
|
|
206
|
-
|
|
207
|
-
Regular users can handle being kicked from room business interaction by listening to `RoomParticipantEvent.onKickedFromRoom` event.
|
|
208
|
-
``` typescript
|
|
209
|
-
import { useRoomParticipantState, RoomParticipantEvent, KickedOutOfRoomReason } from 'tuikit-atomicx-vue3/room';
|
|
210
|
-
import { TUIMessageBox } from '@tencentcloud/uikit-base-component-vue3';
|
|
211
|
-
|
|
212
|
-
const { subscribeEvent, unsubscribeEvent } = useRoomParticipantState();
|
|
213
|
-
|
|
214
|
-
function onKickedFromRoom({ reason }: { reason: KickedOutOfRoomReason; message: string }) {
|
|
215
|
-
let notice = '';
|
|
216
|
-
switch (reason) {
|
|
217
|
-
case KickedOutOfRoomReason.KickedByAdmin:
|
|
218
|
-
notice = 'You have been removed from the room by the host';
|
|
219
|
-
break;
|
|
220
|
-
case KickedOutOfRoomReason.ReplacedByAnotherDevice:
|
|
221
|
-
notice = 'Your account has been logged in on another device';
|
|
222
|
-
break;
|
|
223
|
-
case KickedOutOfRoomReason.KickedByServer:
|
|
224
|
-
notice = 'You have been removed from the room by the server';
|
|
225
|
-
break;
|
|
226
|
-
case KickedOutOfRoomReason.ConnectionTimeout:
|
|
227
|
-
notice = 'Network connection timeout, exiting room';
|
|
228
|
-
break;
|
|
229
|
-
case KickedOutOfRoomReason.InvalidStatusOnReconnect:
|
|
230
|
-
notice = 'Room has been destroyed or you were removed during offline period';
|
|
231
|
-
break;
|
|
232
|
-
case KickedOutOfRoomReason.RoomLimitExceeded:
|
|
233
|
-
notice = 'Room capacity reached, unable to join';
|
|
234
|
-
break;
|
|
235
|
-
default:
|
|
236
|
-
notice = 'You have been removed from the room';
|
|
237
|
-
break;
|
|
238
|
-
}
|
|
239
|
-
TUIMessageBox.alert({
|
|
240
|
-
title: 'Notice',
|
|
241
|
-
content: notice,
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// Subscribe to RoomParticipantEvent when component loads
|
|
246
|
-
subscribeEvent(RoomParticipantEvent.onKickedFromRoom, onKickedFromRoom);
|
|
247
|
-
// Unsubscribe from RoomParticipantEvent when component is destroyed
|
|
248
|
-
unsubscribeEvent(RoomParticipantEvent.onKickedFromRoom, onKickedFromRoom);
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
## Advanced Implementation
|
|
252
|
-
|
|
253
|
-
The current document introduces quickly creating and immediately joining a room, suitable for instant multi-party audio/video communication scenarios.
|
|
254
|
-
|
|
255
|
-
However, in real business scenarios, we often need to plan ahead: set room topics, schedule specific start and end times, and invite participants. Participants can receive reminders before the multi-party audio/video room starts and join on time.
|
|
256
|
-
|
|
257
|
-
Atomicx provides complete scheduled room capabilities, including:
|
|
258
|
-
- **Schedule Room:** Set multi-party room time and participant list in advance.
|
|
259
|
-
|
|
260
|
-
- **Schedule List**: View and manage all upcoming multi-party rooms under your name.
|
|
261
|
-
|
|
262
|
-
- **Meeting Reminders:** Support automatic reminder logic before start.
|
|
263
|
-
|
|
264
|
-
If you need to implement more complex business multi-party audio/video room management logic as described above, please refer to: Schedule Room.
|
|
265
|
-
|
|
266
|
-
## FAQ
|
|
267
|
-
|
|
268
|
-
### If there are no users in the room but the room has not been destroyed, will the room exist forever?
|
|
269
|
-
|
|
270
|
-
When there are no users in the room for 6 consecutive hours, the backend will attempt to reclaim the room.
|
|
271
|
-
|
|
272
|
-
### If there are no users in the room but the room has not been destroyed, will there be any charges?
|
|
273
|
-
|
|
274
|
-
Rooms without users but not yet destroyed only occupy package group count, do not consume minutes and do not generate additional charges.
|
|
275
|
-
|
|
276
|
-
### Can a user join multiple rooms simultaneously?
|
|
277
|
-
|
|
278
|
-
The `useRoomState` provided by Atomicx is a singleton interface and only supports users joining one room at a time. If you need to support a user joining multiple rooms simultaneously, please feel free to [contact us](https://cloud.tencent.com/document/product/647/19906) to submit feedback.
|
|
279
|
-
|
|
280
|
-
### What is the maximum number of users that can join a room simultaneously?
|
|
281
|
-
|
|
282
|
-
The upper limit on the number of users in a room is related to your package. For details, please check [TUIRoomKit Package Description](https://cloud.tencent.com/document/product/647/104842#function).
|