2013-12-15 27 views
5

WebRTC işlevselliğinin tüm çalışması bir webRTC sunucusunda gerçekleştiriliyor mu? Örneğin, rtc data channel from simpl.info'da, giriş metin kutusu ve metin kutusunun html'sini ve JavaScript'i kopyalayıp yerel bilgisayarınıza kopyalayabilirsiniz ve mükemmel çalışır. JavaScript file incelendiğinde, yerel bilgisayarımda bulunmadan webRTC kütüphanelerinden gelen çok sayıda çağrı var. I.E. webRTC işlevsel olarak nasıl çalışır?

window.localPeerConnection = new webkitRTCPeerConnection(servers, 
{optional: [{RtpDataChannels: true}]}); 

ilk başta ben sayfaları ev sahipliği yapacak yerel makineye WebRTC'de indirmek zorunda kalacak çalışmak için bu yöntemleri alacağını düşünen ve sonra ben onları bu şekilde çağırabilir. Ama durum böyle görünmüyor, örneklerin çoğunu denedim ve hepsi yerel olarak webRTC'si olmadan çalışıyorlar.

webRTC intro video'u izledim, bu özelliklerin çoğunu gider, ancak bu soruyu açıklamıyor. Beni de şaşırtan bir başka özellik ise, resmi webrtc.org getting started tutorial'a gittiğinizde, yaptığım webRTC kütüphanelerini indirmek için adım adım talimatlar veriyor. Ancak, webRTC uygulamaları oluşturmak için onlara ihtiyacınız yoksa ve iş dışarıda bir sunucuda yapılıyorsa bunun amacı nedir? Ben başlık neredeyse aynı başka bir soru gördü

, how does webRTC work?ama kabul tepkisi ve onun farklı soru okuduktan sonra, OP akran bağlantısı çalıştı eşler nasıl bilmek istedim ve onlar onu ICE çalışmalarına açıkladı ve Giriş videosundan anladığım TURN sunucuları, sorum şu; bu sunucuların, ICE'nin, vb. Google’da barındırılıyor olması veya bunları yerel olarak barındırabiliriz. Ve eğer Google’ın bir şeyleri vs. barındırıyorsa, yerel olarak evlenemekten daha fakir değil mi?

cevap

4

WebRTC birçok bileşen ve protokolün çok karmaşık bir sinerjisidir. Neyse ki, webdeveloper bakış açısından, bunların tümü üç ana JavaScript API'sı tarafından kapsüllenir: getUserMedia, RTCPeerConnection ve RTCDataChannel. Bu API'ler W3C tarafından tanımlanmıştır ve WebRTC'yi destekleyen tarayıcının bir parçasıdır. Bu takdirde, WebRTC kullanmak "indir" zorunda kalmazsınız

  • getUserMedia
  • RTCPeerConnection
  • RTCDataChannel'ı: Burada geçerli desteğin bir bakış bulabilirsiniz tarayıcı onu destekler, zaten var.

    STUN ve TURN sunucuları hakkındaki ikinci sorunuzu yanıtlamak için: Genel kullanıma açık sunucular vardır. Ancak, bunlar çoğunlukla test amaçlıdır. Kendi TURN sunucunuzu dağıtabilirsiniz, rfc5766-dönüş sunucu böyle bir dosyadır ve belgeler bulunur here

1

Dönüş sunucusuyla ilgili endişeleriniz varsa, rfc5766 kullanarak kendi dönüş sunucunuzu oluşturabilirsiniz. Kendi dönüş sunucumu oluşturmak için kullandım ve iyi çalıştı.

3

WebRTC peer to peer kullanırken, yerel ağınızda bunu yaparsanız iyi çalışır. katılımcılar bilinmekte ve WebRTC bilginin nasıl yönlendirileceğini biliyor. Ama bu insanlar, yönlendiriciler ve güvenlik duvarları vb kullanıyor gibi, internet üzerinde çalışmaz ...

Böylece başlangıçta eş bağlantı başlatmak için sinyalizasyon bilgi alışverişi yapmak zorunda.Bu bilgiler katılımcılara internet üzerinden başkalarını nasıl bulabileceklerini anlatıyor (sadece bir IP IP'nin kendi yönlendiricisinin arkasında herhangi bir sayıda PC'ye sahip olabileceğinden IP yeterli olmayacaktır). Buna sinyalleme denir. Ancak, sinyalleme WebRTC'nin bir parçası değildir, bu yüzden bu bilgiyi nasıl değiştireceğiniz size kalmış. Yani temelde katılımcıların birbirlerini "görebilecekleri" ve sinyal verisi alışverişi yapabileceği bir yere ihtiyacınız var. Bilgi değiştikten sonra, WebRTC, video ve ses gibi tüm diğer verileri ileten doğrudan eş bağlantı kurabilir (bu veriler sunucu üzerinden geçmez). Bunun için istediğiniz herhangi bir teknolojiyi kullanabilirsiniz, websockets, anlık mesajlaşma, hatta bir e-postadaki bilgilerin kopyalanması işe yarayacaktır.

Websockets kullanan basit bir WebRTC uygulaması oluşturma hakkında bir detailed tutorial yazdım. Ayrıca kendi websocket sunucunuzu nasıl kuracağınızı da açıklar. Bu yardımcı olur umarım!

İlgili konular