TUIRoom 온라인 링크를 클릭하여 TUIRoom의 더 많은 기능을 경험할 수 있습니다.
Github를 클릭하여 TUIRoom 코드를 다운로드할 수 있으며, TUIRoom Web Demo 프로젝트 빠른 실행 문서를 참고하여 TUIRoom Web 데모 프로젝트를 실행할 수 있습니다.
Web TUIRoom 컴포넌트를 기존 비즈니스에 통합하려면 이 문서를 참고하십시오.
컴포넌트 통합
TUIRoom 컴포넌트는 Vue3 + TS + Pinia + Element Plus + SCSS를 사용하여 개발되며 Vue3 + TS 기술 스택을 사용하려면 액세스 프로젝트가 필요합니다.
1단계: Tencent Cloud TRTC 및 IM 서비스 활성화
TUIRoom은 Tencent Cloud의 TRTC 및 IM 서비스를 기반으로 개발되었습니다.
1. Tencent Real-Time Communication(TRTC) 애플리케이션 생성
호스트와 참석자는 init 메소드를 통해 TUIRoom 컴포넌트에 애플리케이션 및 사용자 데이터를 초기화할 수 있습니다. 호스트는 createRoom 메소드를 통해 방을 만들고 입장할 수 있습니다. 참석자는 enterRoom 메소드를 통해 호스트가 만든 방에 참여할 수 있습니다.
<template>
<room ref="TUIRoomRef"></room>
</template>
<script setup lang="ts">
import{ ref, onMounted }from'vue';
// TUIRoom 컴포넌트를 가져옵니다. 올바른 가져오기 경로를 사용해야 함
import Room from'./TUIRoom/index.vue';
// 컴포넌트의 메소드를 호출하는 데 사용되는 TUIRoom 컴포넌트 요소 가져오기
const TUIRoomRef =ref();
onMounted(async()=>{
// TUIRoom 컴포넌트 초기화
// 호스트는 방을 만들기 전에 TUIRoom 컴포넌트를 초기화해야 함
// 참석자는 방에 들어가기 전에 TUIRoom 컴포넌트를 초기화해야 함
await TUIRoomRef.value.init({
// sdkAppId 가져오기(1단계 참고)
sdkAppId:0,
// 귀하의 비즈니스에서 사용자의 고유 Id
userId:'',
// 로컬 개발 및 디버깅을 위해 https://console.tencentcloud.com/trtc/usersigtool 에서 userSig를 빠르게 생성할 수 있습니다. userSig 와 userId는 일대일 대응 관계임
userSig:'',
// 귀하의 비즈니스에서 사용자의 사용자 이름
userName:'',
// 비즈니스에 있는 사용자의 프로필 사진에 연결
userAvatar:'',
// 화면 공유에 사용되는 사용자의 고유 Id입니다. shareUserId = `share_${userId}`여야 합니다. 화면 공유 기능이 필요하지 않은 경우 이 매개변수 불필요
shareUserId:'',
// 이 문서의 1단계 > 3단계를 참고하여 sdkAppId 및 shareUserId 를 사용하여 shareUserSig 발행
shareUserSig:'',
})
// 기본적으로 방이 생성됩니다. 실제 연결 시 필요에 따라 handleCreateRoom 메소드를 실행할 수 있음
awaithandleCreateRoom();
})
// 호스트가 방을 만듭니다. 이 메소드는 방을 생성할 때만 호출됨
asyncfunctionhandleCreateRoom(){
// roomId는 사용자가 입력한 roomId로 숫자여야 함
// roomMode에는 ‘FreeSpeech’(자유롭게 말하기) 및 ‘ApplySpeech’(손 들고 말하기) 포함, 기본값은 ‘FreeSpeech’이며 현재 유일하게 지원되는 모드임
// roomParam은 방에 들어가는 사용자의 기본 동작을 지정함(기본적으로 마이크를 켤지 여부, 기본적으로 카메라를 켤지 여부, 기본 미디어 장치 Id)
4. ts 선언 파일 구성src/shims-vue.d.ts 파일에 다음 구성을 추가합니다.
declare module 'tsignaling/tsignaling-js'{
import TSignaling from 'tsignaling/tsignaling-js';
export default TSignaling;
}
declare module 'tim-js-sdk'{
import TIM from 'tim-js-sdk';
export default TIM;
}
declare const Aegis: any;
5단계: 개발 환경 실행
콘솔에서 스크립트를 실행하여 개발 환경을 실행합니다. 그런 다음 사용할 브라우저에서 TUIRoom 컴포넌트가 포함된 페이지를 엽니다.
2단계의 스크립트를 사용하여 Vue + Vite + TS 프로젝트를 생성하는 경우 다음을 수행해야 합니다.
1. 개발 환경 명령어를 실행합니다.
npm run dev
2. 브라우저에서 http://localhost:3000/에 접속합니다.
주의사항:
TUIRoom은 element-plus 컴포넌트를 온디맨드로 불러오기 때문에 개발 환경 라우팅 페이지가 처음 로드될 때 반응이 느려지고 element-plus 컴포넌트가 온디맨드로 로딩된 후 정상적으로 사용할 수 있습니다. 이 로딩은 패키징 후 페이지 로딩에 영향을 미치지 않습니다.
3. TUIRoom 컴포넌트의 기능을 사용해 보십시오.
2단계의 스크립트를 사용하여 Vue + Webpack + TS 프로젝트를 생성하는 경우 다음을 수행해야 합니다.
1. 개발 환경 명령어를 실행합니다.
npm run serve
2. 브라우저에서 http://localhost:8080/에 접속합니다.
주의사항:
실행 중 src/TUIRoom 디렉터리에 eslint 오류가 있는 경우 .eslintignore 파일에 /src/TUIRoom 경로를 추가하여 eslint 검사를 차단할 수 있습니다.
3. TUIRoom 컴포넌트의 기능을 사용해 보십시오.
6단계: 프로덕션 환경 배포
1. dist 파일을 패키징합니다.
npm run build
설명:
실제 패키징 명령어는 package.json 파일을 확인하십시오.
2. dist 파일을 서버에 배포합니다.
주의사항:
프로덕션 환경에서는 HTTPS 도메인 이름을 사용해야 합니다.
부록: TUIRoom API
TUIRoom 인터페이스
init
이 API는 TUIRoom 데이터를 초기화하는 데 사용됩니다. TUIRoom을 사용하는 사람은 이 init 메소드를 호출해야 합니다.
TUIRoomRef.value.init(roomData);
매개변수는 다음과 같습니다.
매개변수
유형
의미
roomData
object
roomData.sdkAppId
number
고객 SDKAppId
roomData.userId
string
사용자 고유 ID
roomData.userSig
string
사용자 UserSig
roomData.userName
string
사용자 닉네임
roomData.userAvatar
string
사용자 프로필
roomData.shareUserId
string
선택 사항, 화면 공유에 사용되는 UserId, shareUserId = share_${userId}여야 하며, 화면 공유 기능이 없는 경우 불필요