문제 상황
- 프론트엔드와 WebRTC를 테스트하는데 계속해서 위와 같은 에러가 떴다.
- 백엔드 서버는 https:// 를 사용하고 있고, 프론트엔드는 http:// local 서버를 사용하는 상황
- 채팅방에 클라이언트가 입장하면 해당 클라이언트 세션아이디를 Redis DB에 저장해주고 있다.
- 처음 같은 채팅방에 다른 두 클라이언트가 들어가면 시그널링은 성공하는데, 둘 중 한명이 나가면 Redis DB에 그 방에 남아있는 사람들의 정보까지도 나랄가 버린다.... 와이 ... ?
- 근데 백엔드 서버와 프론트엔드서버 모두 로컬인 http://를 사용할때는 해당 에러가 없다 !
추측 원인
- 테스트중인 소스의 signal 서버 프로토콜이 https인데 거기에 접속하는 페이지는 http 여서 발생하는 문제
- 크롬37버전이상부터 http로는 미디어스트림을 얻을 수 없다.(getUsermedia 사용불가) 시그널 서버가 http건 https건 상관 없지만 getUsermedia를 사용하는 클라이언트가 https가아니면 사용 불가능 하다고 한다.
오늘은 시간이 늦어서 내일 프론트엔드 서버를 https://로 배포하면 다시 맞춰보는 걸로 !
추가
글 쓴 다음날 프론트엔드 서버를 https:// 로 바꿔 백엔드 서버와 똑같이 맞춰준 뒤 실험을 했지만 여전히 같은 에러가 발생한다.
왜일까 ...? ㅠ ㅠ WebRTC 정말 어렵다 ...!
해결하는대로 업데이트 하겠습니다 ㅠ !
--> 수정 ! 해결이 되었습니다 !! 원인과 해결방법은 아래 링크 참조해 주세요 : )
[ 참고 자료 ]