온라인 체험 링크: Mac OS 및 Windows를 다운로드하여 TUIRoom Electron의 더 많은 기능을 체험할 수 있습니다.
Github을 클릭하여 TUIRoom 코드를 다운로드할 수 있으며, TUIRoom Electron Demo 프로젝트 빠른 실행 문서를 참고하여 TUIRoom Electron 데모 프로젝트를 빠르게 실행할 수도 있습니다.
이 문서는 TUIRoom Electron 컴포넌트를 기존 프로젝트에 통합하는 방법을 보여줍니다.
컴포넌트 통합
TUIRoom 컴포넌트는 Vue3 + TS + Pinia + Element Plus + SCSS를 사용하여 개발되었으므로 프로젝트는 Electron + 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. trtc-electron-sdk 가져오기
UI 레이어에서 import 문을 사용하여 trtc-electron-sdk를 가져오려면 packages/renderer/vite.config.ts를 다음과 같이 구성해야 합니다(그렇지 않으면 require 문을 사용해야 함).
packages/renderer/src/env.d.ts에서 env.d.ts 파일을 다음과 같이 구성합니다.
주의사항:
env.d.ts에 아래 코드를 추가하십시오. 파일에서 기존 구성을 삭제하지 마십시오.
// env.d.ts
declare module 'tsignaling/tsignaling-js'{
import TSignaling from'tsignaling/tsignaling-js';
exportdefault TSignaling;
}
declare module 'tim-js-sdk'{
importTIMfrom'tim-js-sdk';
exportdefaultTIM;
}
6. 프로젝트에 동적 import가 있는 경우 es 모듈을 생성하기 위해 빌드 구성을 수정해야 합니다.
packages/renderer/vite.config.ts의 구성을 다음과 같이 수정합니다.
주의사항:
파일에 아래 코드를 추가합니다. 기존 Vite 구성을 삭제하지 마십시오. 프로젝트에 동적 impor가 없는 경우 이 단계를 건너뛰십시오!
// vite.config.ts
exportdefaultdefineConfig({
// ...
build:{
rollupOptions:{
output:{
format:'es'
}
}
},
});
5단계: 개발 환경 실행
콘솔에서 스크립트를 실행하여 개발 환경을 실행합니다. 그런 다음 사용할 브라우저에서 TUIRoom 컴포넌트가 포함된 페이지를 엽니다.
2단계의 스크립트를 사용하여 Electron + Vue3 + TS 프로젝트를 생성하는 경우 다음을 수행해야 합니다.
1. 개발 환경 명령어를 실행합니다.
npm run dev
주의사항:
TUIRoom은 element-plus 컴포넌트를 온디맨드로 불러오기 때문에 개발 환경 라우팅 페이지가 처음 로드될 때 반응이 느려지고 element-plus 컴포넌트가 온디맨드로 로딩된 후 정상적으로 사용할 수 있습니다. 이 로딩은 패키징 후 페이지 로딩에 영향을 미치지 않습니다.
2. TUIRoom 컴포넌트의 기능을 사용해 보십시오.
6단계: 설치 프로그램 생성 및 실행
터미널 창에서 다음 명령을 실행하여 release 디렉터리에 설치 프로그램을 생성합니다.
npm run build
주의사항:
Mac 설치 패키지는 Mac 컴퓨터로, Windows 설치 패키지는 Windows 컴퓨터로만 구축할 수 있습니다.
부록: 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}여야 하며, 화면 공유 기능이 없는 경우 불필요