2016-08-17 3 views
-1

Я пытаюсь изучить WebRTC, и я не могу найти ничего полезного. Я ищу пример кода. Мне нужен сервер узлов для сигнализации и 2 вкладки браузера, которые смогут передавать текст между ними с помощью webRTC. Кто-нибудь знает, где я могу найти рабочий код для этого?Пример кода WebRTC

+1

https://github.com/webrtc/samples может быть хорошим местом для начала – 0xtvarun

+0

Я не могу запустить его по какой-то причине. есть ли более простой вариант? – GentleMan

+0

@ GentleMan Какой браузер и версия вы используете? – str

ответ

0

Официальные образцы WebRTC работают, просто запустите непосредственно demos. Однако они все местные.

Если вам нужен пример с узловым сервером, попробуйте установить emannion/webrtc-audio-video.

Если вы просто хотите демонстрацию, которая связывается между двумя вкладками браузера, попробуйте это fiddle без сервера.

Он использует фреймворк localSocket Я написал для трюка веб-гнезда с localStorage. Откройте его на двух вкладках или, лучше, в двух окнах, так что вы увидите и то, и другое.

var pc = new RTCPeerConnection(); 

var call = e => navigator.mediaDevices.getUserMedia({video: true, audio: true}) 
    .then(stream => pc.addStream(video.srcObject = stream)).catch(log); 

pc.onaddstream = e => video.srcObject = e.stream; 
pc.oniceconnectionstatechange = e => log(pc.iceConnectionState); 
pc.onicecandidate = e => sc.send({ice: e.candidate}); 
pc.onnegotiationneeded = e => pc.createOffer() 
    .then(sdp => pc.setLocalDescription(sdp).then(() => sc.send({sdp}))).catch(log); 

var sc = new localSocket(); 
sc.onmessage = e => e.data.sdp && pc.setRemoteDescription(e.data.sdp) 
    .then(() => pc.signalingState == "stable" || pc.createAnswer() 
    .then(sdp => pc.setLocalDescription(sdp).then(() => sc.send({sdp})))) 
    .catch(log) || e.data.ice && pc.addIceCandidate(e.data.ice).catch(log); 

var log = msg => div.innerHTML += "<br>" + msg; 
<video id="video" height="120" width="160" autoplay></video><br> 
<button onclick="call()">Call!</button><br><div id="div"></div> 
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script> 
<script src="https://rawgit.com/jan-ivar/localSocket/master/localSocket.js"></script> 

(К сожалению, мой трюк не работает в стеке фрагментах, поэтому запустить fiddle в двух вкладках.)

О, и всегда использовать adapter.js, чтобы избежать различий браузеров пока WebRTC не затвердеет ,