2016-12-13 3 views
1

실제로이 WebRTC 코드 테이블 (https://codelabs.developers.google.com/codelabs/webrtc-web/#7)을 따라 갔지만 ICE 서버에 연결할 필요가있을 때 막혔습니다. 여기Nodejs WebRTC 비디오 호출 설정 및 Turn/ICE 오류, CORS 차단됨

필수 코드 :

main.js는

var pcConfig = { 
    'iceServers': [{ 
    'url': 'stun:stun.l.google.com:19302' 
} 

[...] 

if (location.hostname !== 'localhost') { 
requestTurn(
    'https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913');} 

보통 나도 오류 : "ICE 실패", 또는 "크로스 원산지 요청은 차단 : 같은 기원 정책 원격 읽기 허용하지 않습니다 리소스는 https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913입니다. (이유 : CORS 헤더 'Access-Control-Allow-Origin'이 누락되었습니다.) "

후자에 따르면 "A2enmod headers "를 활성화하고이를 apache.conf로 설정했습니다."헤더는 항상 액세스 제어를 설정합니다 -Allow-Origin "*" "

문제가 지속됩니다. 내 STUN 서버는 " 'url': 'stun : stun.l.google.com : 19302'" 내가 이해하는 한, STUN은 80 %의 시간 동안 작동해야합니다. 그러나 이것은 결코 작동하지 않습니다. 따라서 TURN 서버가 더 이상 작동하지 않더라도 STUN과 때때로 연결해야합니까?

+0

저와 관련된 동일한! 텔레 그램/스카이프를 추가하여이 솔루션을 디스카운트 할 수 있습니까? – Loint

+0

나는 이것에 대한 해결책을 찾지 못했지만 내게 메일을 보내 주셔서 감사합니다. [email protected] – Gideons

+0

그래서 마침내 내 사무실의 네트워크가 모든 것을 막고 있다는 것을 알아 냈습니다. STUN 서버는 항상 실패했습니다. 나는 자신의 TURN 서버를 설치하고 ta-daa를 설정했다. - 비디오 호출이 마침내 작동한다. – Gideons

답변

1

STUN은 80 %의 시간 동안 작동해야합니다. 인터넷 최종 사용자의 80 %는 STUN이 일부 시간 동안 작동해야 함을 의미합니다. 이 80 %에 있는지 여부는 네트워크 구성에 따라 결정됩니다. 특히 UDP가 허용되는지 여부가 가장 중요합니다.

Wireshark 또는 tcpdump과 같은 도구를 사용하여 STUN 트래픽을 직접 확인할 수 있습니다.

ICE는 STUN과 TURN을 모두 사용합니다. STUN 또는 TURN이 작동하지 않으면 WebRTC 피어 연결을 자체 네트워크 외부의 끝점에 연결할 수 없습니다.

또한 iceServers에 TURN 서버를 추가해야합니다.

+1

예 - STUN 서버는 작동하지 않았다. STUN 서버를 시작하고 그것을 목록으로 설정하면 모든 것이 해결됩니다. – Gideons

+1

의미 : 예 - 내 사무실 네트워크가 모든 것을 차단함에 따라 STUN 서버가 작동하지 않았습니다. TURN 서버를 배치하고이를 목록에 추가하면이 문제가 해결됩니다. 이 앱은 트래픽을 테스트하는 데 유용했습니다. demo.easyrtc.com/demos/demo_ice_filter.html – Gideons

+0

@ 기자들 그것은 재미있을 것 같습니다. 어떤 차례의 서버를 배포 했습니까? –