UserSig란 Tencent Cloud가 설계한 일종의 보안 서명으로, 악성 해커가 귀하의 클라우드 서비스 사용권을 도용하는 것을 방지합니다.
현재 Tencent Real-Time Communication(TRTC), Instant Messaging(IM), Mobile Live Video Broadcastng(MLVB) 등의 서비스는 모두 이 보안 메커니즘을 사용하고 있으며, 이러한 서비스를 사용하려면 해당 SDK의 초기화 또는 로그인 함수에 SDKAppID, UserID, UserSig의 주요 정보를 제공해야 합니다.
이 중, SDKAppID는 귀하의 애플리케이션 식별에 사용되고, UserID는 귀사의 사용자 식별에 사용됩니다. UserSig는 이 둘을 기반으로 보안 서명을 계산합니다. UserSig는 HMAC SHA256 암호화 알고리즘으로 계산됩니다. 해커가 UserSig를 위조하지 못하는 이상 귀하의 클라우드 서비스 트래픽을 도용할 수 없습니다.
UserSig의 계산 원리는 다음 이미지와 같으며, 그 본질은 SDKAppID, UserID, ExpireTime 등 주요 정보에 대해 해시 암호화를 1회 진행하는 것입니다.
//UserSig 계산 공식, 여기서 secretkey는 usersig 계산용 암호화 키
usersig = hmacsha256(secretkey, (userid + sdkappid + currtime + expire +
base64(userid + sdkappid + currtime + expire)))
설명:
- 'currtime'은 현재 시스템 시간이고 'expire'는 서명 만료 시간입니다.
- UserSig의 구체적인 계산 및 획득 방법은 UserSig 세부 정보를 참고하십시오.
동시에 4294967294개의 방이 존재할 수 있으며, 누적 방 수량에는 제한이 없습니다.
글로벌 end to end로 평균 300ms 미만으로 딜레이됩니다.
지원합니다. 다음 문서를 참고하십시오.
화면 공유 인터페이스에 대한 자세한 내용은 Windows(C++) API를 참고하십시오. 또한, Electron 인터페이스를 사용할 수도 있습니다.
iOS, Android, Windows(C++), Windows(C#), Mac, Web, Electron 등의 플랫폼을 지원합니다. 자세한 내용은 플랫폼 지원을 참고하십시오.
TRTC는 온라인 라이브 방송 시나리오 전용으로 10만 명 참여 시의 ILVB 저지연 솔루션을 출시했으며, 이를 통해 호스트와 마이크가 연결된 호스트의 최저 딜레이 시간은 200ms 이내, 일반 시청자의 딜레이 시간은 1s 이내로 보장합니다. 또한 약한 네트워크 보완 기술을 통해 복잡한 모바일 네트워크 환경에 대응합니다.
자세한 작업 가이드는 라이브 방송 모드 실행을 참고하십시오.
라이브 방송 시나리오(TRTCAppSceneLIVE 및 TRTCAppSceneVoiceChatRoom)는 TRTCRoleAnchor(호스트)와 TRTCRoleAudience(시청자)이라는 두 가지 역할을 지원합니다. 호스트 역할은 멀티미디어 데이터를 동시에 업스트림, 다운스트림할 수 있으며, 시청자 역할은 다른 사람의 데이터를 다운스트림 재생만 할 수 있습니다. switchRole() 호출을 통해 역할을 교체할 수 있습니다.
지원합니다.
지원합니다.
지원합니다. Third Party 라이브러리 통합 지원 프로세스에 따라 SDK를 통합하면 됩니다. Demo 실행(iOS&Mac)을 참고하십시오.
현재 데스크톱 버전 Chrome 브라우저, 데스크톱 버전 Safari 브라우저, 모바일 버전 Safari 브라우저에서 비교적 완벽하게 지원되며, 기타 플랫폼(예시: Android 시스템 브라우저)의 지원 상황은 완전하지 못할 수 있습니다. 자세한 내용은 지원 플랫폼을 참고하십시오.
브라우저에서 WebRTC 기능 테스트를 열어 WebRTC 기능을 완벽하게 지원하는지 테스트할 수 있습니다.
오류 이름 | 설명 | 해결 방법 |
---|---|---|
NotFoundError | 요청에 맞는 매개변수의 미디어 유형(오디오, 비디오, 화면 공유 등)을 찾을 수 없는 경우입니다. 예를 들어, PC에 카메라가 없는데 브라우저에 비디오 스트림을 요청하는 경우, 오류 메세지를 보고합니다. |
통화 전 사용자에게 통화에 필요한 카메라 또는 마이크 등의 디바이스가 있는지 확인을 요청하고, 카메라가 없고 음성 통화만 필요한 경우, TRTC.createStream({ audio: true, video: false })에서 마이크만 사용하는 방법을 확인하십시오. |
NotAllowedError | 사용자가 현재 브라우저 인스턴스의 오디오, 비디오, 화면 공유 액세스 요청을 거절한 상태입니다. | 사용자에게 카메라/마이크의 액세스 권한 요청을 거절하면 멀티미디어 통화를 사용할 수 없다고 안내하십시오. |
NotReadableError | 사용자가 상응하는 디바이스의 권한을 허용하였으나 운영 체제의 일부 하드웨어, 브라우저 또는 웹 페이지 레이어로 인해 오류가 발생해 디바이스가 액세스할 수 없는 상태입니다. | 브라우저 오류 메시지에 따라 처리하고, 사용자에게 “일시적으로 카메라/마이크에 액세스할 수 없습니다. 현재 다른 애플리케이션에서 카메라/마이크에 액세스 요청을 하지 않았는지 확인한 후 다시 시도해 주십시오.”라고 안내하십시오. |
OverConstrainedError | cameraId/microphoneId 매개변수 값이 유효하지 않습니다. | cameraId/microphoneId 전송 값이 정확하고 유효한지 확인하십시오. |
AbortError | 알 수 없는 문제로 인해 디바이스를 사용할 수 없는 상태입니다. | - |
자세한 내용은 initialize를 참고하십시오.
navigator.mediaDevices.enumerateDevices()
를 입력해 디바이스 리스트를 획득할 수 있는지 확인합니다.navigator.mediaDevices.getUserMedia({ audio: true, video: true })
를 입력하여 MediaStream 객체가 정상적으로 리턴되는지 확인합니다. 정상적으로 리턴되지 않으면 브라우저가 데이터를 획득할 수 없는 상태이므로 브라우저 설정을 점검해야 합니다.TRTC 콘솔의 [사용량 통계] 페이지에서 확인할 수 있습니다.
TRTC 콘솔의 [모니터링 대시보드] 페이지에서 해당 RoomID, UserID를 통해 통화 품질을 확인할 수 있습니다.
latest.release
가 최신 버전과 매칭되어 자동 로딩되므로 버전 번호를 수정하지 않아도 됩니다. 자세한 방법은 SDK 1분 통합을 참고하십시오.
문제 해결에 도움이 되었나요?