Notice
Recent Posts
Recent Comments
Link
투케이2K
157. (TWOK/WORK) [업무 이슈] 자바스크립트 AWS KVS signalingClient sendSdpAnswer 오퍼 응답 이슈 - remoteClientId 누락 본문
투케이2K 업무정리
157. (TWOK/WORK) [업무 이슈] 자바스크립트 AWS KVS signalingClient sendSdpAnswer 오퍼 응답 이슈 - remoteClientId 누락
투케이2K 2025. 5. 13. 19:15[제 목]
[업무 이슈] 자바스크립트 AWS KVS signalingClient sendSdpAnswer 오퍼 응답 이슈 - remoteClientId 누락
[내 용]
------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------
- 제목 : [업무 이슈] 자바스크립트 AWS KVS signalingClient sendSdpAnswer 오퍼 응답 이슈 - remoteClientId 누락
- 테스트 환경 : Window PC / Chrome 브라우저
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[이슈 사항]
------------------------------------------------------------------------------
1. 자바스크립트에서 Aws Kvs 연동 및 Device WebRTC 실시간 비디오 영상 재생 관련 master 에서 sendSdpAnswer 전송 시
viewer 쪽에서 응답 이벤트를 받지 못해 실시간 영상을 재생하지 못하는 이슈 발생
2. 자바스크립트 실시간 Aws Kvs WebRTC 영상 재생 관련 사용 라이브러리 CDN 주소 :
<script src="https://unpkg.com/amazon-kinesis-video-streams-webrtc/dist/kvs-webrtc.min.js"></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1416.0.min.js"></script>
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. [환경] : Aws Kvs WebRTC 실시간 영상 재생에 필요한 정보 유효성 검증
>> AccessKeyId : 일치 정보 확인
>> SecretKey : 일치 정보 확인
>> Channel ARN : Aws KVS 콘솔에서 정상적으로 ARN 주소 일치 확인
>> Region : Aws KVS WebRTC 영상 재생 수행 환경이 구축 된 리전 정보 확인
2. [디바이스] : 자바스크립트에서 Aws Kvs WebRTC Role MASTER 지정 확인
3. [디바이스] : 자바스크립트에서 navigator.mediaDevices.getUserMedia 사용해 비디오 스트림 재생 권한 부여 확인 및 실시간 Video 스트림 재생 확인
4. [디바이스] : SignalingClient open 후 정상적으로 viewer 접속 대기 상태 진입 확인
5. [디바이스] : viewer 에서 sdpOffer 요청 상태 확인
6. [디바이스] : master sendSdpAnswer(peerConnection.localDescription) 으로 응답 전송 수행 확인
7. [클라이언트] : sdpAnswer 콜백 부분에서 응답이 내려오지 않은 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. 코드 구문 변경 : master sendSdpAnswer 응답 전송 시 offer 요청이 들어온 remoteClientId 값 추가 지정 필요
2. 변경 된 소스 코드 : 디바이스 master 기준
// [Viewer 의 SDP Offer 수신 대기]
signalingClient.on('sdpOffer', async (offer, remoteClientId) => {
// [peerConnection remoteClientId 지정]
peerConnection.onicecandidate = event => {
if (event.candidate) {
signalingClient.sendIceCandidate(event.candidate, remoteClientId);
}
};
console.log(">>>>>>>>>>>>>>>>>>>>>>>> [sdpOffer] : [sendIceCandidate] : [Finish] >>>>>>>>>>>>>>>>>>>>>>>>");
// [상대방 오퍼를 내 Remote 에 추가]
await peerConnection.setRemoteDescription(offer);
console.log(">>>>>>>>>>>>>>>>>>>>>>>> [sdpOffer] : [setRemoteDescription] : [Finish] >>>>>>>>>>>>>>>>>>>>>>>>");
// [Answer 옵션 지정 및 생성]
const answer = await peerConnection.createAnswer();
console.log(">>>>>>>>>>>>>>>>>>>>>>>> [sdpOffer] : [createAnswer] : [Finish] >>>>>>>>>>>>>>>>>>>>>>>>");
// [Answer 를 내 local 로 저장]
await peerConnection.setLocalDescription(answer);
console.log(">>>>>>>>>>>>>>>>>>>>>>>> [sdpOffer] : [setLocalDescription] : [Finish] >>>>>>>>>>>>>>>>>>>>>>>>");
// [SDP Answer 응답 전송]
console.log(">>>>>>>>>>>>>>>>>>>>>>>> [sdpOffer] : [sendSdpAnswer] : ["+answer.type+"] >>>>>>>>>>>>>>>>>>>>>>>>");
signalingClient.sendSdpAnswer(peerConnection.localDescription, remoteClientId); // [접속 시도한 기기 아이디를 지정해 줘야함]
});
3. 클라이언트 view sdpAnswer 콜백 부분에서 정상 응답이 내려 온 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------
[자바스크립트 AWS Kvs WebRTC 디바이스 역할 (master) sdp answer 응답 및 실시간 비디오 스트림 전송 수행]
https://blog.naver.com/kkh0977/223863377974
[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행]
https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist
[Aws KVS 비디오 스트림 , 신호 전송 채널 차이점 설명 정리]
https://blog.naver.com/kkh0977/223854439046
[Aws Kvs WebRTC 실시간 영상 재생 관련 구성 요소 및 용어 정리]
https://blog.naver.com/kkh0977/223858189791
[Aws STS 임시 보안 자격 증명 설명 정리]
https://blog.naver.com/kkh0977/223846461194
------------------------------------------------------------------------------
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments