Birçok muhabirin sigortası WebRTC wiki'leriyle sohbet ediyor. Ek bir web kamerası ve VPS sunucusu kullanarak WebRTC çevrimiçi yayını nasıl organize edilir WebRTC Medya ve Yayın Sunucusunun Kurulumu

Bugün WebRTC, tarayıcılarda ses ve video akışı için popüler bir teknolojidir. HTTP Akışı ve Flash gibi muhafazakar teknolojiler, kayıtlı içeriğin (talep üzerine video) dağıtımı için daha uygundur ve WebRTC'yi gerçek zamanlı ve çevrimiçi yayınlarla önemli ölçüde takas eder. minimum düzeyde video bulanıklığının gerekli olduğu ve izleyicilerin canlı yayında görülenleri izlemesine olanak tanıyan.

Gerçek zamanlı net iletişim yeteneği, video akışlarının taşınmasında, minimum gecikmeyle video aktarımı için standart temel olan ve gerçek zamanlı iletişim sistemlerinde yaygın olarak kullanılan UDP protokolünü kullanan WebRTC mimarisinin kendisine benzer.

Çevrimiçi yayın sistemlerinde, webinarlarda ve video içeriğiyle, son kullanıcılarla etkileşimli iletişim gerektiren ve daha fazlasını gerektiren diğer uygulamalarda iletişim içeriği önemlidir.

WebRTC'yi denemenin bir başka nedeni de çılgın bir trend. Bugünün dış görünümleri Android Chrome tarayıcı Milyonlarca cihazın herhangi bir ek yazılım veya konfigürasyon kurmadan yayını izlemeye hazır olmasını garanti eden bu teknolojiyi desteklemektedir.

WebRTC teknolojisini doğrulamak ve üzerinde basit bir çevrimiçi yayın başlatmak için Flashphoner WebRTC Media & Broadcasting Server yazılımındaki sunucuyu kullandık. Özellikler, WebRTC akışlarını "birden çoğa" modunda yayınlama yeteneğinin yanı sıra RTSP protokolü aracılığıyla IP kameralar ve video gözetim sistemleri desteğine sahip olduğunu iddia ediyor; Bu bağlamda web-web yayınlarına ve özelliklerine odaklanıyoruz.

WebRTC Medya ve Yayın Sunucusunun Kurulumu

Bo için Windows sistemi Sunucu sürümü çıkmadı ve VMWare+Linux gibi bir sanal makine kurmak istemedim, evdeki Windows bilgisayarımdaki çevrimiçi yayına itiraz edemedim. Zamandan tasarruf etmek için aşağıdaki gibi bir platformdaki kötü barındırma örneğini almaya karar verdik:

Bu, Amsterdam veri merkezinde önceden yüklenmiş herhangi bir yazılım bulunmayan Centos x86_64 sürüm 6.5'tir. Böylece, sıraya koyduğumuz her şey sunucu ve ona ssh erişimiydi. Konsolu bilenler için Linux komutları Bir WebRTC sunucusu kurmanın basit ve zahmetsiz olması beklenir. Ah, bize ne verdiler:

1. Arşivleri keşfedin:

$wget https://site/download-wcs5-server.tar.gz

2. Rozpakuvati:

$tar -xzf download-wcs5-server.tar.gz

3. Düzenlemek:

$cd FlashphonerWebCallServer

Kurulumdan önce sunucunun IP adresini girin: XXX.XXX.XXX.XXX

4. Lisansı etkinleştirin:

$cd /usr/local/FlashphonerWebCallServer/bin

$./activation.sh

5. WCS sunucusunu başlatın:

$service web çağrısı sunucusu başlangıcı

6. Günlüğü kontrol edin:

$tail - f /usr/local/FlashphonerWebCallServer/logs/flashphoner_manager.log

7. Lütfen iki sürecin yürürlükte olduğunu unutmayın:

$ps yardımcı | grep Flashphoner

Kurulum işlemi tamamlandı.

WebRTC çevrimiçi yayınını test etme

Yayınları test etmenin oldukça basit olduğu ortaya çıktı. Sunucunun çekirdeği, kurulum aşamasında /var/www/html klasörüne indirdiğimiz bir düzine Javascript, HTML ve CSS dosyasından oluşan bir web istemcisidir. Web istemcisinin HTML5 Websockets sunucusuyla bağlantı kurabilmesi için yapmanız gereken tek şey flashphoner.xml yapılandırmasına sunucunun IP adresini girmektir. Test sürecini anlatalım.

1. Test istemcisi sayfası index.html'yi Chrome tarayıcısında açıyoruz:

2. Yayını yazdırmak için ekranın ortasındaki “Başlat” butonuna basmanız gerekmektedir.
Çalışmaya başlamadan önce web kamerasının bağlı ve kullanıma hazır olduğundan emin olmanız gerekir. Web kameraları için özel bir seçenek yok; örneğin, ayrı bir 1280x800 çerçeveye sahip bir dizüstü bilgisayarda yerleşik standart kamerayı kullandık.

Videonuzun internet sunucusuna yüklenmesini sağlamak ve üretilmesine izin vermek için Chrome tarayıcının kamera ve mikrofona erişim istemesi gerekir.

3. Arayüz, video akışını kameradan WebRTC sunucusuna başarıyla yayınlar. Sağ üst köşede yayının sunucuya gideceğini belirten gösterge, altta ise video gönderme adımı için “Durdur” butonu bulunmaktadır.

Aşağıdaki alandan mesaja saygı gösterin. Birisinin yayını yeniden izlemeden önce katılabilmesi için lütfen bu yayına benzersiz bir tanımlayıcı girin. Bu mesajı tarayıcınızda açmak için Dosit'e tıklayın. Panoya kopyalamak için “Kopyala” düğmesine tıklamanız gerekir.

Web seminerleri, konferanslar, çevrimiçi video yayınları veya etkileşimli TV için gerçek eklentiler olması durumunda, dağıtımcıların bu tanımlayıcının ana izleyici gruplarına dağıtımını uygulaması gerekecek, böylece gerekli akışlara ve aynı zamanda mantık robotlarına bağlanabilecekler. programlar. WebRTC Medya ve Yayın Sunucusu Çalışmıyor ancak yalnızca video dağıtıyor.

5. Bağlantı kurulur ve izleyici ekranda bir akış gösterir. Artık başka birine mesaj gönderebilir, akışı durdurabilir veya sessiz tutabilirsiniz tam ekran modu, sağ alt köşedeki kontrolleri sıkarak

WebRTC sunucusu çevrimiçi yayınını test etme sonuçları

Test saati boyunca arka oda umutsuz görünüyordu. Veri merkezine gönderilen ping yaklaşık 100 milisaniye sürdü ve kapanma gözle görülemezdi. Gerçek gecikmenin aynı 100 artı veya eksi ara belleğe alma saati başına birkaç on milisaniye olduğunu varsayabilirsiniz. Flash videoyla karşılaştırmak gerekirse: Flash'ın bu tür testleri WebRTC kadar iyi performans göstermiyor. Yani elinizi benzer seviyede hareket ettirdiğinizde ekrandaki hareket ancak bir veya iki saniye sonra ortaya çıkabiliyor.

Ancak küplerin yanlardan parçalara ayrılabilmesi önemlidir. Bu, VP8 codec bileşeninin doğasının bir göstergesidir ve ana hedefi, hoş bir netlikte ve iletişim gecikmeleri olmadan gerçek zamanlı video iletişimlerini sağlamaktır.

Sunucunun kurulumu ve yapılandırılması kolaydır, başlatılması için, ssh aracılığıyla konsoldan komutları girebilen ve oturum açabilen bir bilgisayar korsanınınkine eşdeğer Linux bilgisi dışında herhangi bir ciddi beceriye ihtiyacınız yoktur. Metin düzeltici. Sonuç olarak, tarayıcılar arasında birden çoğa çevrimiçi yayını geliştirmeyi başardık. Yayına ek izleyici bağlamak da herhangi bir soruna yol açmadı.

Yayının kalitesinin web seminerleri ve çevrimiçi iletişimler için oldukça keyifli olduğu ortaya çıktı. Yemeğin seslendirdiği tek şey videoydu. Kamera 1280x800'ü destekliyor ancak test resmindeki çözünürlük 640x480'e benzer. Belki de distribütörlerden beslenme bilgilerini kontrol etmelisiniz.

Web kamerasından yapılan test yayınından video
WebRTC sunucusu aracılığıyla

WebRTC (Web Gerçek Zamanlı İletişim), eklentiler veya diğer uzantılar yüklenmeden ses, video ve içerik akışının tarayıcıdan gerçek zamanlı olarak tarayıcıya iletilmesini tanımlayan bir standarttır. Standart, tarayıcıyı video konferansın uç terminaline geçirmenize ve indirmeyi yazdırmak için web sayfasını açmanıza olanak tanır.

WebRTC nedir?

Bu makale, ortalama bir tüketicinin WebRTC teknolojisi hakkında bilmesi gereken her şeyi kapsayacaktır. Projenin avantajlarına ve dezavantajlarına bakalım, bazı sırları açığa çıkaralım ve WebRTC'nin nerede ve neden geliştirildiğini anlayalım.

WebRTC hakkında bilmeniz gerekenler nelerdir?

Video iletişim standartlarının ve teknolojilerinin gelişimi

Sergiy Yutsaytis, Cisco, Video+Konferans 2016

WebRTC nasıl çalışır?

İstemci tarafında

  • Koristuvach, HTML5 etiketini eklemek için sayfayı açar
  • Tarayıcı, kullanıcının web kamerasına ve mikrofonuna erişim sağlar.
  • İstemcinin web sitesindeki JavaScript kodu, NAT ve Güvenlik Duvarını atlamak için bağlantı parametrelerini (WebRTC sunucusunun veya diğer WebRTC istemcilerinin IP adresleri ve bağlantı noktaları) kontrol eder.
  • Sunucudaki karışık bir konferanstan tarayıcı veya akış hakkındaki bilgileri kaldırdığınızda, tarayıcı seçilen ses ve video codec bileşenlerini kabul etmeye başlar.
  • WebRTC istemcileri arasında (bizim durumumuzda, tarayıcı ile sunucu arasında) akış verilerinin kodlanması ve aktarılması süreci başlar.

WebRTC sunucusu tarafında

İki katılımcı arasında veri alışverişi yapmak için bir video sunucusu gerekli değildir ancak birden fazla katılımcıyı bir konferansta birleştirmeniz gerekiyorsa bir sunucu gerekir.



Video sunucusu, WebRTC kullanan bir terminal gibi çeşitli cihazlardan medya trafiğini alır, dönüştürür ve kullanıcılar için güçlendirir.

WebRTC sunucusu aynı zamanda WebRTC ziyafetlerinden gelen medya trafiğini de yakalar ve bunu vikory programları gibi konferans katılımcılarına iletir. masaüstü bilgisayarlar ya da başka mobil cihazlar, böyle şeylerin bariz olduğu zamanlar vardır.

Standardın avantajları

  • PZ kurulumuna gerek yoktur.
  • Bağlantının acısı çok yüksek:
    • Güncel videoları (VP8, H.264) ve ses kodeklerini (Opus) arayın.
    • Lavabonun altındaki akışı otomatik olarak ayarlar.
    • Gürültü azaltma sistemi getirildi.
    • Mikrofon hassasiyet seviyesinin (AGC) otomatik ayarlanması.
  • Yüksek düzeyde güvenlik: Tüm iletişimler TLS ve SRTP protokolleri kullanılarak korunur ve şifrelenir.
  • İçeriği örneğin bir masaüstünde depolamak için bir mekanizma vardır.
  • HTML5 ve JavaScript'e dayalı herhangi bir kontrol arayüzünü uygulama yeteneği.
  • Arayüzü WebSockets kullanarak herhangi bir arka uç sistemle entegre etme yeteneği.
  • Açık kaynak kodlu proje, ürün veya hizmetinize dağıtılabilir.
  • Gerçek çapraz platform: Bununla birlikte, aynı WebRTC eklentileri, tarayıcı WebRTC'yi desteklediği sürece masaüstü veya mobil herhangi bir işletim sisteminde iyi çalışır. Yazılım geliştirmek için kaynaklardan tasarruf etmek önemlidir.

Standart için yeterli değil

  • Grup sesli ve görüntülü konferansları düzenlemek için katılımcıların görüntü ve sesini karıştıran bir video konferans sunucusuna ihtiyacınız vardır, çünkü Tarayıcı, kendi aralarında giren birden fazla akışı senkronize edemiyor.
  • Tüm WebRTC çözümleri kendi aralarında saçmadır çünkü... Standart, yalnızca video ve ses aktarma yöntemlerini değil, aynı zamanda satıcıya kadar abonelere hitap etme, kullanılabilirliklerini artırma, ilgili dosyaların paylaşılması, planlama vb. yöntemlerin uygulanması anlamına da gelir.
  • Yani bir distribütörün WebRTC programlarını başka bir distribütörün WebRTC uygulamalarına aktaramayacaksınız.
  • Grup konferanslarını karıştırmak büyük mali kaynaklar gerektirir, dolayısıyla bu tür görüntülü iletişim satın alma gerektirir ücretli abonelik Veya her konferansın günlük bir işlemcinin 1 fiziksel çekirdeğini gerektirdiği kendi altyapınıza yatırım yapın.

WebRTC'nin Sırları: Satıcılar yıkıcı web teknolojisinin maliyetini nasıl ortadan kaldırabilir?


Tsachi Levent-Levi, Bloggeek.me, Video+Konferans 2015

Pazar video konferansı için WebRTC

Artan video konferans terminali sayısı

WebRTC teknolojisi video konferans pazarının gelişmesine katkıda bulunmuştur. 2013 yılında WebRTC desteğiyle ilk tarayıcıların ortaya çıkmasından sonra dünya genelinde video konferans terminallerinin sayısı 1 milyar cihaz kadar dramatik bir şekilde arttı. Temelde dış görünüm tarayıcısı, bağlantı kalitesi açısından donanım benzerlerinden ödün vermeyen bir video konferans terminali haline geldi.

Özel çözümler arayın

Çeşitli JavaScript kitaplıklarının ve karanlık hizmet API'lerinin WebRTC desteğiyle birleşimi, herhangi bir web projesine kolayca video desteği eklemenizi sağlar. Daha önce, verileri gerçek zamanlı olarak iletmek için distribütörlerin robotik protokollerin ilkelerini öğrenmesi ve diğer şirketlerin uygulamalarını kullanması gerekiyordu; bu da genellikle ek lisanslama gerektiriyordu ve bu da maliyetleri artırıyordu. WebRTC artık "Siteyi arama", "Çevrimiçi sohbet desteği" vb. hizmetlerde aktif olarak tanıtılıyor.

Eski Koristuvacham Linux için Skype

2014 yılında Microsoft, BT çalışanları arasında büyük hayal kırıklığına neden olan Linux için Skype projesine destek verdiğini duyurdu. WebRTC teknolojisi işletim sistemine bağlı değildir, yalnızca tarayıcı düzeyinde uygulanır. Linux kullanıcıları WebRTC tabanlı ürün ve hizmetleri Skype'ın yerine geçecek şekilde kullanabilirler.

Flash ile Rekabet

WebRTC ve HTML5, halihazırda en kötü kaderini yaşayan Flash teknolojisine ölümcül bir darbe oldu. 2017'den bu yana kablolu tarayıcılar resmi olarak Flash'ı desteklemeyi bıraktı ve teknoloji piyasada kaldı. Ancak web konferansı için bir pazar yaratarak ve tarayıcılarda canlı yayın için teknik yetenekleri oluşturarak bile Flash'ı daha verimli bir şekilde tanıtmak gerekiyor.

Video sunumları WebRTC

Dmitro Odintsov, TrueConf, Video+Konferans Zhovten 2017

WebRTC kodekleri

Ses kodekleri

WebRTC ses trafiğini sıkıştırmak için Opus ve G.711 codec'leri kullanılır.

G.711- çoğunlukla sistemlerde sıkışıp kalan, yüksek bit hızına (64 kbps) sahip en eski ses codec'i geleneksel telefon. Başlıca avantajı, hafif sıkıştırma algoritmalarının kullanımı yoluyla minimum hesaplama kazancıdır. Codec değişiyor düşük seviye Ses sinyallerinin sıkıştırılması ve hoparlörler arasında miksaj sırasında sese ilave gürültü getirmemesi.

G.711 çok sayıda cihaz tarafından desteklenmektedir. Bu codec bileşenini kullanan sistemler, diğer ses codec bileşenlerini (G.723, G.726, G.728 vb.) temel alan sistemlere göre daha hafiftir. G.711 kutusu için test edilen MOS'tan 4,2 puan alınması (4-5 arası puan en yüksek puandır ve garna yakist, ses trafiğinin ISDN ve ötesine iletim hızına benzer).

başyapıt- Bu, değişken bit hızını ve yüksek düzeyde sıkıştırmayı destekleyen, düşük kodlama gecikmesine sahip (2,5 ms'den 60 ms'ye kadar) bir codec bileşenidir ve değişken bant genişliği sınırları dahilinde akışlı ses sinyallerini iletmek için idealdir. Opus, SILK (ses sıkıştırma, insan konuşmasını bastırma) ve CELT (ses kodlama) codec bileşenlerinin en iyi özelliklerini birleştiren hibrit bir çözümdür. Codec halka açıktır ve bu konuda başarılı olan yayıncıların yasal ücret ödemesine gerek yoktur. Diğer ses codec'leriyle karşılaştırıldığında Opus, performans zenginliğiyle kesinlikle kazanıyor. MP3, Vorbis, AAC LC gibi düşük bit hızına sahip popüler codec bileşenlerini indirebilirsiniz. Opus, AMR-WB ve Speex'in altında orijinale en yakın ses görüntüsünü yeniler. Bu codec bileşeni yakında kullanıma sunulacak ve WebRTC teknolojisinin yaratıcıları bunu takip ettikleri kapsamlı ses standartları yelpazesine dahil etti.

Video codec bileşenleri

WebRTC için video kodlayıcı seçimi bir dizi perakendeciden alındı ​​ve sonuç H.264 ve VP8 oldu. Neredeyse her şey mevcut tarayıcılar rahatsız edici codec bileşenlerini destekleyin. Video konferans sunucularının WebRTC ile çalışabilmesi için yalnızca bir tanesini desteklemesi yeterlidir.

VP8- video akışının yüksek hızda kod çözülmesini ve kare israfından önce artırılmış kararlılığı sunan, açık lisansa sahip yüksek kaliteli bir video codec bileşeni. Codec evrenseldir, donanım platformlarında uygulanması kolaydır, bu nedenle video konferans sistemi satıcıları bunu genellikle ürünlerinde kullanır.

Ücretli video codec'i H.264 silah arkadaşıyla çok daha erken evlenmişti. Bu codec bileşeni, yüksek video parlaklığını korurken video akışının yüksek derecede sıkıştırılmasına sahiptir. Donanımsal video konferans sistemlerinin yüksek codec genişliği, video çağrılarını WebRTC standardında iletir.

Google ve Mozilla aktif olarak VP8 codec bileşenini tanıtıyor ve Microsoft, Apple ve Cisco H.264'ü destekliyor (geleneksel video konferans sistemleriyle uyumluluğu sağlamak için). Ve burada karanlık WebRTC çözümünün geliştiricileri için çok büyük bir sorun ortaya çıkıyor ve eğer konferansta tüm katılımcılar bir tarayıcı kullanıyorsa, o zaman konferansın bir kez bir codec bileşeniyle karıştırılması gerekir ve eğer tarayıcılar aralarında farklıysa, Safari / Edge, o zaman konferans iki kez farklı codec'lerle gerçekleşiyor ve bunların iki kez taşınması gerekiyor sistem faydaları medya sunucusuna ve bunun sonucunda WebRTC hizmetlerine aboneliklerin kullanılabilirliğine.

WebRTC API'si

WebRTC teknolojisi üç ana API'ye dayanmaktadır:

  • (bir web tarayıcısının kameralardan veya operatörün masaüstünden ses ve video sinyalleri aldığını gösterir).
  • RTCPeer Bağlantısı(kamera, mikrofon ve masaüstü verilerinin, medya verilerinin "alışverişi" için tarayıcılar arasındaki bağlantıyı belirtir. Ayrıca, bu API'nin "taahhütleri" arasında sinyal işleme (üçüncü taraf gürültüsünün temizlenmesi, mikrofonun ayarlanması) ve bunların kontrolü yer alır. vikors ses ve video codec bileşenleri).
  • RTCVeri Kanalı(kurulu bağlantı üzerinden iki yönlü veri aktarımını sağlar).

Öncelikle kullanıcının mikrofonuna ve kamerasına erişimini reddedersiniz, tarayıcı sizden buna izin vermenizi isteyecektir. İÇİNDE Google Chrome Erişimi daha sonra "Ayarlar" bölümünden ayarlayabilirsiniz; Opera ve Firefox'ta, listeden erişimi iptal ettiğiniz anda cihaz seçimi hemen yapılabilir. İzin isteği, HTTP protokolünü kullanırken her zaman ve HTTPS kullanıyorsanız bir kez görünecektir:


RTCPeer Bağlantısı. WebRTC konferansına katılan tarayıcı, o nesneye erişiminden sorumludur. RTCPeerConnection ile medya bir tarayıcıdan diğerine NAT ve kenar ekranları aracılığıyla yönlendirilebilir. Medya akışlarının başarılı bir şekilde iletilmesi için katılımcıların bu tür verileri web soketleri gibi ek aktarım kullanarak alışverişi yapması gerekir:

  • başlatan katılımcı başka bir katılımcıya bir Teklif-SDP (iletilen medya akışının özelliklerini içeren veri yapısı) gönderir;
  • başka bir katılımcı bir "onay" - Cevap-SDP oluşturur ve bunu başlatıcıya iletir;
  • Daha sonra, tespit edilmesi halinde (katılımcılar NAT veya sınır ekranlarının arkasındaysa) katılımcılar arasında ICE aday değişimi düzenlenir.

Katılımcılar arasındaki alışverişin başarıyla tamamlanmasının ardından medya akışlarının (ses ve video) anında aktarımı organize edilir.

RTCVeri Kanalı. Veri Kanalı protokolü desteği yakın zamanda tarayıcılarda ortaya çıktı, bu nedenle bu API, Mozilla Firefox 22+ ve Google Chrome 26+ tarayıcılarındaki WebRTC wiki'sinde görülebilir. Ek yardım için katılımcılar tarayıcıda metin bildirimleri gönderebilirler.

WebRTC aracılığıyla bağlantılar

Desteklediğimiz masaüstü tarayıcılar

  • Google Chrome (17+) ve Chromium motorunu temel alan tüm tarayıcılar;
  • Mozilla FireFox (18+);
  • Opera (12+);
  • Safari (11+);

Android için desteklenen mobil tarayıcılar

  • Google Chrome (28+);
  • Mozilla Firefox (24+);
  • Opera Mobil (12+);
  • Safari (11+).

WebRTC, Microsoft ve Internet Explorer

Microsoft, uzun süredir WebRTC destek sürücüsünde tasarruf sağlıyor İnternet Explorer ve yeni Edge tarayıcınızda. Redmondlu çocuklar artık teknolojiyi kontrol edemedikleri için şirket sahiplerinin eline bırakmaktan hoşlanmıyorlar, bu politikanın ekseni. Ale adım adım sağa doğru ölü bir merkezden yok edildi, çünkü. Artık WebRTC'yi göz ardı etmek mümkün değil ve WebRTC standardına benzer ORTC projesi açıklandı.

ORTC distribütörlerinin ifadesiyle bu, WebRTC standardının azaltılmış API seti ile bir uzantısıdır. JavaScript'in temelleri Ve orijinal çevirimde her şeyin aynı olacağı anlamına gelen HTML5, standardı ve geliştirmelerini Google değil yalnızca Microsoft kontrol edecek. H.264 tarafından desteklenen bir dizi uzantı codec bileşeni ve telefon ve donanım video konferans sistemlerinde kullanılan G.7XX serisinin çeşitli ses codec bileşenleri. RDP desteğinin (içerik aktarımı için) ve mesaj alışverişinin gerekli olması mümkündür. Konuşmadan önce, Internet Explorer koristuvach'lara nazik davranmadı, ORTC desteği Edge'den mahrum kalacak. Doğal olarak, böyle bir protokol ve codec kümesinin Skype Kurumsal ile çok az bağlantısı var ve bu da WebRTC için daha da fazla iş durgunluğu yaratıyor.

WebRTC(Web Gerçek Zamanlı İletişim), Web eklentilerinin ve sitelerinin ses ve/veya video medya akışlarını sorunsuz bir şekilde iletmesine ve ayrıca aracılarla uğraşmadan tarayıcılar arasında ek veri alışverişi yapmasına olanak tanıyan bir teknolojidir. WebRTC teknolojisi de dahil olmak üzere bir dizi standart, eklentiler veya diğer üçüncü taraf yazılımları yüklemeye gerek kalmadan veri alışverişinde bulunmanıza ve eşler arası telekonferanslar gerçekleştirmenize olanak tanır.

WebRTC, aynı anda çalışan birçok birbirine bağımlı uygulama programı arayüzünden (API) ve protokolden oluşur. Bulacağınız belgeler WebRTC'nin temellerini, veri aktarımı, medya akışı ve çok daha fazlası için bağlantıları nasıl kurup yapılandıracağınızı anlamanıza yardımcı olacaktır.

Delilik

WebRTC'nin uygulanması geliştirme aşamasında olduğundan ve tarayıcınız WebRTC işlevselliğine sahip olduğundan, kodunuz üzerinde çalışmaya başlamadan önce Google'ın Adapter.js çoklu dosya kitaplığını kullanmanızı öneririz.

Adapter.js, WebRTC uygulamalarındaki özelliklerin kendisini destekleyen bağlamlar arasında sorunsuz bir şekilde entegre edilmesi için çeşitli takozlar ve çoklu dolgular sağlar. Adapter.js ayrıca oluşturucuların öneklerini ve diğer yetkili adlarını da toplayarak WebRTC'deki geliştirme sürecini kolaylaştırır ve en iyi sonucu verir. Kütüphane ayrıca bir NPM paketi olarak da mevcuttur.

Adapter.js kütüphanesinin daha da geliştirilmesine hayret ediyoruz.

WebRTC wiki'nin

WebRTC'nin birçok amacı vardır ve aynı zamanda sesli ve görüntülü konferans desteği, dosya paylaşımı, ekran paylaşımı, kimlik doğrulama ve birlikte çalışabilirlik dahil olmak üzere Web için güçlü multimedya yetenekleri sağlar. DTMF tonlu arama desteği de dahil olmak üzere eski telefon sistemleri. Düğümler arasındaki bağlantılar, özel sürücülere veya eklentilere ihtiyaç duyulmadan ve çoğu zaman ara hizmetler olmadan oluşturulabilir.

İki düğüm arasındaki bağlantı, RTCPeerConnection arayüzüne yönelik bir nesne olarak temsil edilir. Bağlantı açık olarak kurulduğu sürece RTCPeerConnection vikorist nesnesi, medya akışları (MediaStreams) ve/veya veri kanalları (RTCDataChannel s) bağlantıya eklenebilir.

Medya akışları, medya bilgilerinin herhangi bir sayıdaki parçalarından (parçalarından) oluşabilir. Bu parçalar MediaStreamTrack arayüzündeki nesnelerle temsil edilir ve ses, video, metin (altyazılar veya bölüm başlıkları gibi) dahil olmak üzere bir veya daha fazla medya türünü içerebilir. Çoğu akış, en azından yalnızca bir ses parçasından (bir ses parçası) veya video parçalarından oluşturulur ve akışlar (belirli bir zamandaki medya) veya kaydedilmiş u dosyası gibi gönderilebilir ve kaldırılabilir.

Servis bilgilerinin iletilmesi, veri alışverişi ve paketlerin, oyun durumlarının, dosya aktarımının veya kapalı veri aktarım kanallarının iletilmesi için kullanılabilen RTCDataChannel arayüz nesnesini kullanarak iki düğüm arasında veri alışverişi yapmak üzere bir bağlantı oluşturmak da mümkündür.

daha fazla ayrıntı ve gerekli ilgili kılavuzlara ve öğreticilere bağlantılar

WebRTC arayüzleri

WebRTC'nin çeşitli görevlerin yürütülmesi için sorunsuz bir şekilde çalışan arayüzler sağladığı arayüzler aracılığıyla bunları kategorilere ayırdık. Hızlı gezinme için kenar çubuğundaki alfabeyi takip edin.

Bağlantı ve keruvannya'nın ayarlanması

Bu arayüzler WebRTC bağlantılarıyla yapılandırma, destek ve ağ oluşturma için seçilir. İki yönlü multimedya mükemmel bağlantısını kurarken en iyi yapılandırmayı seçmek için bir dış görünüm düğümünün potansiyeli hakkında bilgi alışverişinde bulunurken kullanılan eşler arası medya bağlantılarını, veri kanallarını ve arayüzleri temsil ederler.

RTCPeerConnection WebRTC bağlantısını temsil eder. yerel bilgisayar ve uzak bir düğümde. Vikoryst, iki düğüm arasında başarılı bir aktarımı gerçekleştirmek için kullanılır. RTSessionDescription Oturum parametrelerini belirtir. RTSessionDescription kodu, anlaşma sürecinin her bir bölümünü (teklif/konuşma) gösteren türün bir açıklamasını içerir ve oturumun SDP tanımlayıcısını açıklar. RTCIceCandidate, RTCPeerConnection bağlantısını kurmaya yönelik İnternet Bağlantı Kurulumu (ICE) sunucusu adayıdır. RTCIceTransport İnternet bağlantınız (ICE) hakkında bilgi sağlar. RTCPeerConnectionIceEvent RTCPeerConnection adı verilen ICE adayları için seçilen olayları temsil eder. Bu bölme nesnesine bir tür iletilir: icecandidate. RTCRtpSender, RTCPeerConnection türündeki bir nesne için MediaStreamTrack türündeki bir nesne aracılığıyla veri aktarımını yönetir. RTCRtpReceiver RTCPeerConnection türündeki bir nesne için MediaStreamTrack türündeki bir nesne aracılığıyla verileri alır ve kodunu çözer. RTCTrackEvent MediaStreamTrack türünde yeni bir giriş nesnesinin oluşturulduğunu ve RTCRtpReceiver türünde bir nesnenin RTCPeerConnection nesnesine eklendiğini belirtir. RTCCertificate RTCPeerConnection nesnesini temsil eden bir sertifika sağlar. RTCDataChannel İki iletişim düğümü arasındaki çift yönlü bir veri kanalını temsil eder. RTCDataChannelEvent RTCDataChannel türündeki bir nesne, RTCPeerConnection veri kanalı türündeki bir nesneye bağlandığında meydana gelen olayları görüntüler. RTCDTMFSender RTCPeerConnection türündeki bir nesne için çift tonlu çoklu frekans (DTMF) sinyalini kodlar ve iletir. RTCDTMFToneChangeEvent Çift Tonlu Çoklu Frekans (DTMF) ton değiştirme girişini gösterir. Bu ürün boşaltmaz (aksi belirtilmedikçe) veya dokunmaz (aksi belirtilmedikçe). RTCStatsReport Aktarılan nesnenin durumunu eşzamansız olarak MediaStreamTrack türüne bildirir. RTCIdentityProviderRegistrar Bir kimlik sağlayıcıyı (idP) kaydeder. RTCIdentityProvider Tarayıcının, tanımlanmış bir kimliğin oluşturulmasını veya doğrulanmasını isteme yeteneğini etkinleştirir. RTCIdentityAssertion Uzak akış düğümünün kimliğini görüntüler. Eğer üniversite henüz kurulup onaylanmadıysa arayüze gönderilen mesaj null olur. Kurulduktan sonra değiştirilemez. RTCIdentityEvent Bir kimlik sağlayıcı (idP) tanımlayıcı nesnesini temsil eder. RTCPeerConnection nesne türüne benzer. Bu alt kimlik sonucuna bir tür iletilir. RTCIdentityErrorEvent Bir kimlik sağlayıcıyla (idP) ilişkili bir hata olayını temsil eder. RTCPeerConnection nesne türüne benzer. Bu yöntemle iki tür hata iletilir: idpassertionerror ve idpvalidationerror.

Pos_bniki

Geliştiriciler tarafından WebRTC oluşturmak ve geliştirmek ve aramayı genişletmek için kullanılan WebRTC mimarisi API'sine genel bakış kenar protokolleri ve bağlantı standartları. Bu görünüm bu standartların bir vitrinidir. WebRTC, tarayıcıdaki ek verileri, ses, video akışlarını veya başka herhangi bir kombinasyonu iletmek için ana bilgisayardan ana bilgisayara modunda bir bağlantı düzenlemenize olanak tanır. Bu yazımızda, bir WebRTC oturumunun bağlantının kurulmasından başlayarak yaşamına bir göz atacağız ve tamamlanıncaya, yani artık ihtiyaç duyulmayıncaya kadar tüm süreci ele alacağız. WebRTC API'sine Genel Bakış WebRTC, iki veya daha fazla düğüm arasında veri ve medya akışı alışverişini desteklemek için birlikte çalışan birçok birbirine bağımlı uygulama programı arayüzünden (API) ve protokolden oluşur. Bu temsillerin istatistiğidir kısa bakış kutanöz API ve yaku meta vin yeniden inceleniyor. WebRTC Temelleri Bu makale, tarayıcılar arası RTC programlarının oluşturulmasında size yol gösterecektir. Bu yazının sonuna kadar çalışma tarihi noktadan noktaya modda çalışan medya kanalıdır. WebRTC protokolleri Bu makale, WebRTC API'sinin oluşturulduğu protokollere ek olarak sunulmaktadır. Bu el kitabı vuzol-vuzol ve örgü bağlantısını nasıl vikorist edebileceğinizi anlatıyor

WebRTC, tarayıcı tarafından sağlanan ve P2P bağlantılarını düzenlemenize ve tarayıcılar arasında doğrudan veri aktarmanıza olanak tanıyan bir API'dir. İnternette WebRTC'yi kullanarak güçlü bir görüntülü sohbet yazmaktan birçok yardım alabilirsiniz. Mesela yazının ekseni Habré üzerine. Bütün bunlar iki müşteri arasında yapılır. Bu yazıda WebRTC kullanarak üç ve daha fazla istemci arasındaki bağlantıların ve bilgi alışverişinin nasıl düzenleneceğini öğrenmeye çalışacağım.

RTCPeerConnection arayüzü, iki tarayıcı arasında eşler arası bir bağlantıdır. Üç veya daha fazla iş arkadaşını bir araya getirmek için bir ağ sınırı (arasındaki düğümün diğer tüm düğümlere bağlandığı bir sınır) düzenlememiz gerekecek.
Aşağıdaki diyagramı kullanalım:

  1. Sayfa açıldığında oda ID’sinin varlığı kontrol edilir. konum.karma
  2. Oda kimliği belirtilmezse yeni bir oda kimliği oluşturulur
  3. Belirlenen odaya katılmak isteyenlerin bildirimi ile sinyalizasyon sunucusu güçlenmektedir.
  4. Sinyal sunucusu, bu odadaki diğer istemcilere yeni bir müşteri hakkında bildirimler gönderir.
  5. Zaten odada bulunan müşteriler yeni SDP teklifi gönderir
  6. Acemi teklife yanıt veriyor" ve

0. Sinyal sunucusu

Görünen o ki, WebRTC tarayıcılar arasında P2P bağlantı olanağı sunmasına rağmen, çalışması hizmet mesajlarının alışverişi için ek aktarım gerektiriyor. Bu aktarımı kullanan uygulama, Node.JS'de Socket.io wiki ile yazılmış bir WebSocket sunucusudur:

Var soket_io = require("socket.io"); module.exports = function (server) ( var kullanıcılar = (); var io = soket_io(sunucu); io.on("bağlantı", function(socket) ( // Yeni müşterinin oda soketine geçme zamanı geldi. on("room ) ", function(message) ( var json = JSON.parse(message); // Soketi istemci listesine ekleyin soket zaten hangi odada) , oradan çıkın Socket.leave(socket.room);) // Elektrikli odaya girin Socket.room = json.room; Socket.join(socket.room); Socket.user_id = json.id; bu odada yeni bir katılımcının kabulü hakkında bilgi bulunur cevap veya ICE adayı) Socket.on ("webrtc", function(message) ( var json = JSON.parse(message); if (json.to !== tanımsız && kullanıcılar !== tanımsız) ( // Sahibi sahibi mesajda belirtilmiştir) sunucuya gönderiyoruz, sadece size mesaj gönderiyoruz... users.emit("webrtc", message); ) else ( // ...geniş bant için bilgi de önemlidir soket.broadcast.to(socket.room).emit("webrtc", message); ) )); // Her bağlantı olduğunda Socket.on("disconnect", function() ( // Bir istemci bağlandığında, diğerlerini bilgilendir ); kullanıcıları sil;)); )); );

1.index.html

Sayfanın çıkış kodu basittir. Açıkçası diğer güzelliklerin düzenine saygı göstermedim ki bu yazının konusu bu değil. Birisi onu güzelleştirmek isterse özel bir zorluk yoktur.

WebRTC Sohbet Demosu

Bağlı 0 akranlar

2. main.js

2.0. Mesajın sayfanın öğelerinden ve WebRTC arayüzünden çıkarılması
var chatlog = document.getElementById("sohbet günlüğü"); var mesaj = document.getElementById("mesaj"); var bağlantı_num = document.getElementById("bağlantı_num"); var oda_bağlantısı = document.getElementById("oda_bağlantısı");

Daha önce olduğu gibi WebRTC arayüzlerine uyum sağlamak için tarayıcı öneklerini kullanmak zorundayız.

Var PeerConnection = window.mozRTCPeerConnection || window.webkitRTCPeerConnection; var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription; var IceCandidate=window.mozRTCIceCandidate || window.RTCIceCandidate;

2.1. Belirlenen oda kimliği

Burada oda ve misafir için benzersiz bir tanımlayıcı oluşturacak bir fonksiyona ihtiyacımız var. Bu UUID için zafer kazanacağız.

Function uuid() ( var s4 = function() ( return Math.floor(Math.random() * 0x10000).toString(16); ); return s4() + s4() + "-" + s4() + "-" + s4() + "-" + s4() + "-" + s4() + s4() + s4();

Adresten oda kimliğini çıkarmayı deneyelim. Bu kurulmazsa yeni bir tane oluşturulacaktır. Üretim odasına gönderme sayfasında görüntüleniyoruz ve aynı zamanda üretim süreci operatörünün kimliği oluşturuluyor.

Var ODA = konum.hash.substr(1); if (!ROOM) ( ROOM = uuid(); ) Room_link.innerHTML = "Odaya bağlantı"; var ME = uuid();

2.2. WebSocket

Sayfa açılır açılmaz sinyal sunucumuza bağlanarak derhal odaya giriş isteyecek ve belki talep edenlere bilgi verilecektir.

// Bir mesaj kapatıldığında sunucuya bununla ilgili bir uyarı gönderilmesi gerektiği belirtilir. var soket = io.connect("", ("boşaltmada senkronizasyon bağlantısını kes": true)); soket.on("webrtc", soketReceived); soket.on("yeni", soketYeniPeer); // Odaya zorla giriş yapılmasını isteyecek soket.emit("room", JSON.stringify((id: ME, Room: ROOM))); // WebRTC işleviyle ilgili adres bildirimlerini artırmak için ek işlev sendViaSocket(type, message, to) ( Socket.emit("webrtc", JSON.stringify((id: ME, to: to, type: type, data : message) )));

2.3. PeerConnection ayarları

Sağlayıcıların çoğu İnternet'e bağlantıları NAT aracılığıyla sağlar. Bu doğrudan bağlantı sayesinde bu o kadar da önemsiz bir mesele haline gelmez. Bağlantı oluşturulduktan sonra, tarayıcının NAT'ı atlamak için kullanılabilmesi için STUN ve TURN sunucularının bir listesini belirtmemiz gerekir. Bağlantı için birkaç ek seçenek de vardır.

Var sunucu = ( iceServers: [ (url: "stun:23.21.150.121"), (url: "stun:stun.l.google.com:19302"), (url: "turn:numb.viagenie.ca", kimlik bilgisi: "kelimelerinizi okuyabilirsiniz", kullanıcı adı: " [e-posta korumalı]") ] ); var options = ( isteğe bağlı: [ (DtlsSrtpKeyAgreement: true), // Chrome ve Firefox arasındaki iletişim için gereklidir (RtpDataChannels: true) // DataChannels API için Firefox tarafından gereklidir ] )

2.4. Yeni bir hesap yöneticisinin bağlanması

Odaya yeni bir ziyafet geldiğinde sunucu bizi bilgilendirmeye zorluyor yeni. Lütfen girdiğiniz bilgilere dikkat edin ve fonksiyon tıklanacaktır. soketYeniPeer.

Var eşler = (); function soketYeniPeer(veri) ( eşler = (candidateCache: ); // Yeni bir bağlantı oluşturun var pc = yeni PeerConnection(sunucu, seçenekler); // Başlatın initConnection(pc, veri, "teklif"); // Eşi kaydedin listeye peers.connection = pc;// Bilgi alışverişinin yapılacağı bir DataChannel oluşturun var kanal = pc.createDataChannel("kanalım", ());channel.owner=data;peers.channel=kanal; kanal bindEvents( kanal) ; // Bir SDP teklifi oluşturun pc.createOffer(function(offer) ( pc.setLocalDescription(offer); )); ) function initConnection(pc, id, sdpType) if (event.candidate) ( // Yeni bir kanal olduğunda ICE adayı belirlenir, daha fazla push için listeye eklenir peers.candidateCache.push(event.candidate); ) else ( // Aday tanımlama tamamlandıktan sonra arama motoru tekrar aranır, ancak aday olmadan // İlk SDP teklifine veya SDP yanıtına hangi tür için ziyafet gönderiyoruz (işlev parametresinden bağımsız olarak)... sendViaSocket(sdpType, pc.localDescription, id); // ...ve sonra ICE'den önce bulunan tüm adaylar for (var i = 0; i< peers.candidateCache.length; i++) { sendViaSocket("candidate", peers.candidateCache[i], id); } } } pc.oniceconnectionstatechange = function (event) { if (pc.iceConnectionState == "disconnected") { connection_num.innerText = parseInt(connection_num.innerText) - 1; delete peers; } } } function bindEvents (channel) { channel.onopen = function () { connection_num.innerText = parseInt(connection_num.innerText) + 1; }; channel.onmessage = function (e) { chatlog.innerHTML += "

Arkadaş diyor ki: "+e.data+"
"; }; }

2.5. SDP teklifi, SDP yanıtı, ICE adayı

Bu bildirimlerden birini seçtiğinizde sizden bir bildirim istenecektir.

Function SocketReceived(data) ( var json = JSON.parse(data); switch (json.type) ( case "candidate": RemoteCandidateReceived(json.id, json.data); break; case "offer": RemoteOfferReceived(json. ) id, json.data); break; case "answer": uzak

2.5.0 SDP teklifi
function RemoteOfferReceived(id, data) ( createConnection(id); var pc = Pes.connection; pc.setRemoteDescription(new SessionDescription(data)); pc.createAnswer(function(answer) ( pc.setLocalDescription(answer); )); ) function createConnection(id) ( if (eşler === tanımsız) ( eşler = (candidateCache: ); var pc = new PeerConnection(sunucu, seçenekler); initConnection(pc, id, "answer"); Peers.connection = pc pc.ondatachannel = işlev(e) ( eşler.kanal = e.kanal; eşler.kanal.sahip = kimlik; binEvents(eşler.kanal); )) )
2.5.1 SDP yanıtı
function RemoteAnswerReceived(id, data) ( var pc =Pes.connection; pc.setRemoteDescription(new SessionDescription(data)); )
2.5.2 ICE adayı
function RemoteCandidateReceived(id, data) ( createConnection(id); var pc = Pes.connection; pc.addIceCandidate(new IceCandidate(data)); )
2.6. Bildirim gönderme

Düğmeye basıldığında Göndermek fonksiyon çağrılır mesaj gönder. Tek yapmanız gereken ziyafet listesini gözden geçirmek ve herkese bildirim göndermeye çalışmak.

Bu makalelerin metası – eşler arası görüntülü sohbetin (p2p görüntülü sohbet) bir gösterimini kullanarak, yapısını ve çalışma prensibini öğrenin. Bu amaçla, eşlemeli görüntülü sohbet webrtc.io-demo'nun bir gösterimi ile çok sayıda müşteriye hızlı bir şekilde kapsama alanı sağlayacağız. Ücretsiz olarak indirebilirsiniz: https://github.com/webRTC/webrtc.io-demo/tree/master/site.

Lütfen GitHub'un Web projelerinin kapsamlı geliştirilmesine yönelik bir web sitesi veya web hizmeti olduğunu unutmayın. Geliştiriciler bu site üzerinden projelerinin kodlarını yerleştirebilir, tartışabilir ve tek tek karşılaştırabilirler. Ayrıca büyük BT şirketleri bu sitede resmi depolar yayınlamaktadır. Hizmet, açık kaynak kodlu projeler için ücretsizdir. GitHub, açık kaynak kodlu bir kütüphane koleksiyonudur.

Ayrıca GitHub'dan eşler arası görüntülü sohbet demosunu indirin ve bunu kişisel bilgisayarınızın C sürücüsündeki webrtc_demo eklentimiz için oluşturulan dizine yerleştirin.


Pirinç. 1

Yapısından da anlaşılacağı üzere (Şekil 1), eşler arası görüntülü sohbet, JavaScript programımın uyguladığı istemci script.js ve sunucu server.js scriptlerinden oluşur. Komut Dosyası (kütüphane) webrtc.io.js (İSTEMCİ) - eşler arası bir şema kullanarak tarayıcılar arasında gerçek zamanlı iletişimin düzenlenmesini sağlar: "istemci-istemci" ve webrtc.io.js (İSTEMCİ) ve webrtc. io.js (SERVER), WebSocket protokolünü kullanarak, istemci-sunucu mimarisini kullanarak tarayıcı ile web sunucusu arasında çift yönlü iletişim sağlar.

webrtc.io.js (SERVER) betiği webrtc.io kitaplığında bulunur ve node_modules\webrtc.io\lib dizininde bulunur. HTML5 ve CSS3'te uygulanan görüntülü sohbet arayüzü index.html. Webrtc_demo programı, dosyalar yerine Notepad++ gibi html editörlerinden biri kullanılarak görüntülenebilir.

Görüntülü sohbet çalışmasının ilkesi şu şekilde doğrulanabilir: dosya sistemi PC. Sunucuyu (server.js) bilgisayarınızda çalıştırmak için node.js ara yazılımını yüklemeniz gerekir. Node.js, tarayıcıda JavaScript kodunu çalıştırmanıza olanak tanır. Node.js'yi şu şekilde indirebilirsiniz: http://nodejs.org/ (07/15/13 itibarıyla v0.10.13 sürümü). Node.org web sitesinin ana sayfasında indirme düğmesine tıklayın ve http://nodejs.org/download/ adresine gidin. İçin koristuvachiv pencereleriÖnce win.installer'ı (.msi) yükleyin, ardından bilgisayarda win.installer'ı (.msi) çalıştırın, ardından Program Dosyaları dizinine nodejs ve "npm paket yöneticisini" yükleyin.




Pirinç. 2

Bu nedenle node.js, JavaScript kodunun temel geliştirilmesi ve geliştirilmesinin yanı sıra bir yönetici veya paket yöneticisi npm'nin yardımıyla kurulabilen bir dizi dahili modülden oluşur.

Modülleri kurmak için yapmanız gerekenler komut satırı Programlar dizininden (örneğin, "webrtc_demo") şu komutu girin: npm kurulum modülü_adı. Modül yükleme işlemi sırasında npm yöneticisi, kurulumun tamamlandığı dizinde node_modules klasörünü oluşturur. İşlem için nodejs, modülleri otomatik olarak node_modules dizinine dahil eder.

Ayrıca, node.js'yi yükledikten sonra komut satırını açın ve npm paket yöneticisini kullanarak node_modules dizinindeki webrtc_demo ekspres modülünü açın:

C:\webrtc_demo>npm hızlı yükleme

Express modülü, node.js için bir web çerçevesi veya program geliştirmeye yönelik bir web platformudur. Express'e küresel erişim sağlamak için onu şu şekilde yükleyebilirsiniz: npm kurulumu -g ekspres.

Daha sonra webrtc.io modülünü güncelliyoruz:

C:\webrtc_demo>npm webrtc.io'yu yükleyin

Daha sonra komut satırında sunucuyu başlatıyoruz: server.js:

C:\webrtc_demo>düğüm sunucusu.js


Pirinç. 3

Sunucunun tamamı başarıyla çalışıyor (Şekil 3). Artık bir web tarayıcısı kullanarak, IP adresinin arkasındaki sunucuya gidebilir ve web tarayıcısının istemci komut dosyası kodunu (script.js) ve webrtc.io.js komut dosyasını alacağı index.html web sayfasına erişebilirsiniz. ve ardından bunları silin. Eşler arası görüntülü sohbeti çalıştırmak için (iki tarayıcı arasında bağlantı kurmak için), node.js üzerinde çalışan sinyal sunucusuna IP adresiyle bağlanmak üzere webrtc'yi destekleyen iki tarayıcıya ihtiyacınız vardır.

Sonuç olarak iletişim programının istemci kısmının arayüzü (görüntülü sohbet) açılır ve kamera ve mikrofona erişime izin verir (Şekil 4).



Pirinç. 4

“İzin Ver” butonuna tıkladıktan sonra multimedya kaydı için kamera ve mikrofon bağlanır. Ayrıca görüntülü sohbet arayüzü aracılığıyla metin verilerini (küçük 5) toplayabilirsiniz.



Pirinç. 5

Şunu belirtmek gerekir ki... Sunucu bir sinyal sunucusudur ve esas olarak bilgisayar kullanıcılarının tarayıcıları arasında bağlantı kurmak için kullanılır. WebRTC sinyali sağlayan sunucu betiği sunucusu.js için Node.js kullanılır.