업무 프로세스
본 섹션은 온라인 클로 머신에서 흔히 볼 수 있는 업무 프로세스를 종합해서 전체 시나리오의 구현 과정을 더 잘 이해하는 데에 도움을 줍니다.
온라인 클로 머신의 Real-Time Communication Engine(RTC Engine) 스트리밍
아래 그림은 온라인 클로 머신의 RTC Engine 스트리밍의 시퀀스 다이어그램을 보여주며, 여기에는 네트워크 카메라 RTC Engine 스트리밍, 사용자 스트리밍 풀링 등의 프로세스가 포함되어 있습니다.
아래 그림은 온라인 클로 머신의 RTMP 스트리밍의 시퀀스 다이어그램을 보여주며, 여기에는 네트워크 카메라 RTMP 스트리밍, 사용자 스트리밍 풀링 등의 프로세스가 포함되어 있습니다.
접수 준비
단계 1: 서비스의 개통
온라인 클로 머신 시나리오는 일반적으로 Tencent Cloud RTC Engine 유료 PaaS 서비스를 이용하여 구축해야 합니다. 여기서 RTC Engine은 실시간 오디오및 비디오 인터랙션 기능을 제공합니다. 실제 업무 요구에 따라 위 서비스를 자유롭게 선택하여 개통할 수 있습니다. 1. RTC Engine 콘솔에 로그인하여 애플리케이션 페이지에서 애플리케이션 생성을 클릭하세요. 필요에 따라 RTC Engine 애플리케이션 버전을 업그레이드할 수 있습니다.예를 들어 플래그십 버전은 더 많은 부가 기능 서비스를 이용할 수 있습니다. 설명:
두 개의 애플리케이션을 생성하고 테스트 환경과 프로덕션 환경에 각각 적용하는 것을 권장하며, RTC Engine 서비스를 처음 개통할 경우 10,000분 무료 사용 패키지가 제공됩니다.
RTC Engine 월정액 요금제(체험판, 라이트, 스탠다드, 프로페셔널)는 다양한 부가 기능 서비스를 이용할 수 있습니다. 자세한 내용은 월정액 요금제 설명을 참조하세요. 2. 애플리케이션 생성이 완료되면 애플리케이션 > 애플리케이션 개요에서 해당 애플리케이션의 기본 정보를 확인할 수 있습니다. 이후 사용을 위해 SDKAppID와 SDKSecretKey을 안전하게 보관해야 하며 키 유출로 인한 트래픽 도용되지 않도록 주의해야 합니다. 단계 2: SDK 가져오기
NPM 통합
npm install trtc-sdk-v5 --save
2. 프로젝트 스크립트에서 모듈을 도입합니다.
import RTC Engine from 'trtc-sdk-v5';
스크립트 통합
손님의 웹 페이지에 다음과 같은 코드를 추가하시면 됩니다.
<script src="trtc.js"></script>
단계 3: 인증 및 허가
UserSig는 Tencent Cloud가 설계한 보안 서명이고 악의적인 공격자가 손님의 클라우드 서비스 사용 권한을 도용하는 것을 방지하기 위한 것입니다. RTC Engine은 방 입장 시 이 인증 자격 증명을 검증합니다.
디버깅 및 테스트 단계: 클라이언트 예시 코드 또는 콘솔으로 UserSig를 계산 및 생성할 수 있으며, 디버깅 및 테스트 용도로만 사용됩니다. 정식 운영 단계: 클라이언트가 역공학으로 키가 유출되는 것을 방지하기 위해 보안 등급이 더 높은 서버 UserSig 계산 방식의 사용을 권장합니다.
구체적인 구현 프로세스는 다음과 같습니다.
1. 손님의 App은 SDK 초기화 함수를 호출하기 전에 먼저 서버에 UserSig를 요청해야 합니다.
2. 손님의 서버는 SDKAppID와 UserID에 따라 UserSig를 계산합니다.
3. 서버는 계산된 UserSig를 손님의 App에 반환합니다.
4. 손님의 App은 획득한 UserSig를 특정 API를 통해 SDK에 전달합니다.
5. SDK는 SDKAppID + UserID + UserSig를 Tencent Cloud 서버에 제출하여 검증합니다.
6. Tencent Cloud는 UserSig를 검증하여 합법성을 확인합니다.
7. 검증이 완료되면 RTC Engine SDK에 실시간 오디오및 비디오 서비스를 제공합니다.
주의:
디버깅 단계의 로컬 UserSig 계산 방식은 온라인 환경에 적용하는 것을 권장하지 않습니다. 역공학으로 인해 키가 유출될 수 있기 때문입니다.
여러 언어 버전(Java/Go/PHP/Node.js/Python/C#/C++)의 UserSig 서버 계산 소스 코드를 제공하며, 자세한 내용은 UserSig 계산 소스 코드을 참조하세요. 단계 4: SDK 초기화 및 리스닝
RTC Engine SDK 인스턴스의 생성 및 이벤트 리스너의 설정.
const trtc = TRTC.create();
trtc.on('error', err => {
console.error(err);
});
설명:
SDK 이벤트 알림을 모니터링하고 일반적인 오류에 대한 로그 출력 및 처리를 권장합니다. 자세한 내용은 오류 코드 테이블을 참조하세요. 단계 5: RTMP 푸시 스트리밍 주소의 생성 (RTMP 푸시 스트리밍)
RTMP 푸시 스트리밍 주소의 생성.
rtmp://rtmp.rtc.qq.com/push/방번호?sdkappid=앱&userid=사용자명&usersig=서명
RTMP appName은 push입니다.
주소의 방 번호, 앱, 사용자명, 서명은 업무에 따라 변경해야 합니다.
매개변수를 단순화하기 위해 문자열 방 번호만 지원하며, 64자를 초과할 수 없고 문자는 숫자, 영문자, 밑줄만 가능합니다.
주의:
RTC Engine의 다른 단말에서 RTMP 스트림을 시청하려면 문자열 방 번호로 입장을 사용하세요.
UserSig의 생성 규칙은 UserSig 관련을 참조하세요(유효 기간 내에 서명해야 함에 유의하세요). 예시:
rtmp://rtmp.rtc.qq.com/push/hello-string-room?sdkappid=140*****66&userid=******rtmp2&usersig=eJw1jdE********RBZ8qKGRj8Yp-wVbv*mGMVZqS7w-mMDQL
접속 과정
API 시퀀스 다이어그램
단계 1: 클로 머신 푸시 스트리밍
RTC Engine의 푸시 스트리밍
2. RTC Engine 네트워크 카메라 또는 스트리밍 박스로 SdkAppid, UserId, UserSig, RoomId 등의 정보를 구성하여 스트리밍을 시작합니다.
주의:
RTC Engine 방 번호는 숫자 유형 roomId과 문자열 유형 strRoomId으로 구분되며, 두 유형의 방은 서로 통하지 않으므로 방 번호 유형을 통일기키는 것을 권장합니다.
RTC Engine 사용자 역할은 스트리머와 청취자로 구분되며, 스트리머만 스트리밍 권한을 가집니다. 방 입장 시 사용자 역할을 지정해야 하며, 지정하지 않으면 기본적으로 스트리머 역할로 설정됩니다.
온라인 클로 머신 시나리오에서는 방 입장 모드를 rtc 모드로 선택하는 것이 좋으며, 이렇게 하면 지연 시간이 더 낮아집니다.
RTMP 푸시 스트리밍
2. RTMP 네트워크 카메라 또는 스트리밍 박스로 RTMP 푸시 스트리밍 주소를 구성하여 스트리밍을 시작합니다.
단계 2: 사용자가 방에 들어가서 스트리밍을 풀합니다.
1. 사용자가 RTC Engine 방에 입장합니다.
const trtc = TRTC.create();
try {
await trtc.enterRoom({ strRoomId, scene:'rtc', sdkAppId, userId, userSig});
console.log('방 입장 성공');
} catch (error) {
console.error('방 입장 실패' + error);
}
2. 시청자가 스트리머의 오디오 및 비디오 스트림을 구독합니다.
trtc.on(TRTC.EVENT.REMOTE_VIDEO_AVAILABLE, ({ userId, streamType }) => {
const view = ${userId}_${streamType};
trtc.startRemoteVideo({ userId, streamType, view });
});
trtc.on(TRTC.EVENT.FIRST_VIDEO_FRAME, event => {
})
단계 3: 사용자가 방을 나갑니다.
1. 사용자가 방에서 나갑니다.
await trtc.exitRoom();
trtc.destroy();
2. 방 해산하기.
서버에서 방 해산합니다
클라이언트에서 방 해산합니다
클라이언트에는 방을 직접 해산하는 API가 없으며, 각 클라이언트가 exitRoom을 호출하여 방을 나가야 합니다. 방 내 모든 스트리머와 시청자가 방을 나가면 RTC Engine 방 라이프사이클 규칙에 따라 방이 자동으로 해산됩니다. 자세한 내용은 RTC Engine 방 나가기을 참조하십시오. 이상 처리
자동 재생 정책에 대한 제한
Web에서 스트림을 가져오는 시나리오에서는 사용자가 방에 들어가는 체험감을 향상시키기 위해 방에 들어간 후 자동 재생이 기본적으로 설정됩니다. 그러나 Android 및 iOS의 Webview에서는 기본 자동 재생 정책이 브라우저와 다를 수 있습니다. 다음 문서를 참조하여 App에서 자동 재생 제한을 해제할 수 있습니다.
설명:
RTC Engine iOS WeChat 브라우저 자동 재생은 위 방법으로 해결되지 않을 수 있습니다. 필요하시면 연락하세요를 통해 하세요.