WebRTC: Avantajları ve Teknik Zorlukları Hakkında Bilmeniz Gereken Her Şey

WebRTC, noktadan noktaya aktarım teknolojisini kullanarak tarayıcılar veya uygulamalar arasında akış verilerini aktarmak için tasarlanmış bir tarayıcı teknolojisidir. Bu teknoloji, yalnızca bir tarayıcı kullanarak kullanıcılar arasında bağlantı kurmanıza izin verdiği için çekicidir. Birçok geliştirici için WebRTC’yi öğrendiklerinde bu bir keşif haline gelir: üçüncü taraf bir sunucu kullanmadan görüntülü sohbet oluşturabilirsiniz, yalnızca bir tarayıcıya ihtiyacınız vardır — ve bu harika!

WebRTC, ek eklentilerin yüklenmesini gerektirmez. Kodu JavaScript ile yazmanız yeterlidir ve video akışları tarayıcıda sorunsuz çalışır.

WebRTC’yi yalnızca görüntülü sohbetler için uygulayabilirsiniz; teknoloji, herhangi bir formattaki dosyaların ve metin mesajlarının aktarılmasına da izin verir.

WebRTC API’leri

WebRTC oldukça geniş bir işlev ve araç setine sahiptir. Bu teknolojinin üç API’sini açıklayacağız.

1. getUserMedia

API, kullanıcı cihazlarını bir tarayıcıdan yönetmenize olanak tanır. Seçebilirsiniz:

  • videonun yayınlanması gereken bir kamera
  • istenen mikrofon
  • yayın görüntüsünün kalitesi

Bu tür ayarlar projeyi optimize etmeye yardımcı olur. Daha hızlı çalışma için, yüksek kaliteli bir görüntü 360 piksele düşürülebilir. Bu sayede kullanıcılar cihaz ayarlarına bağlı kalmazlar: kendi kalite limitlerini belirleyebilirler.

Gürültü kontrol algoritması ayrıca çok yardımcı olur: bir ses akışından gelen gürültüyü ve arka plan seslerini etkili bir şekilde ortadan kaldırır.

2. RTCPeerConnection

Bu API, bir sunucu kullanmayan iki tarayıcının doğrudan bir kombinasyonu olan Peer-to-peer (P2P) teknolojisini sarar. Böylece, video akışlarının bir cihazdan diğerine doğrudan aktarımı vardır.

RTCPeerConnection’ın içinde önemli bir özellik vardır — hangi video akışlarının kullanıcılara ulaşamaması nedeniyle NAT sağlayıcısını atlamak için gereken Stun / Turn sunucuları için yerleşik destek.

Geliştiriciler, Stun / Turn sunucularına tek bir kullanıcı olarak erişebilir ve bir video akışını iletmek için temiz bir adres alabilir. Daha sonra başka bir kullanıcıdan Stun / Turn sunucularına bağlanabilir ve yeniden bağlanabilirsiniz. Böylelikle NAT teknolojisi nedeniyle kullanıcıların bağlantılarında meydana gelebilecek aksaklıklar ve sorunlar önlenmiş olur.

3. RTCDataChannel

RTCDataChannel kullanarak, video akışına paralel olarak çeşitli formatlardaki metin ve dosyaları iletmek mümkündür.

Bu API sayesinde, uygulama kullanıcıları için basit ve hızlı bir sohbet geliştirebilirsiniz. Sunucuda bir kurulum gerektirmez, yeniden yazılabilir ve 4 GB boyutuna kadar (ve bir tarayıcı izin verirse daha fazla) herhangi bir formattaki dosyaları aktarabilir.

Flash’tan WebRTC’ye geçiş

Flash teknolojisi güncelliğini yitirdi ve artık tarayıcılarımız için neredeyse yok oldu. Bu nedenle, Flash kullanılarak geliştirilen projeleri WebRTC dahil olmak üzere diğer teknolojilere (hala sahip değilseniz) aktarmak önemlidir.

Küçük bir konu başlığı: Flash / Flex’ten HTML5 ve JS’ye geçişle ilgili bir makalem var. Buradan okuyabilirsiniz .

Bu nedenle, WebRTC, uygunsuz oynatıcıların videolarını video dosyaları veya canlı akışlar biçiminde göstermenize ve herhangi bir format ve metin mesajındaki dosyaları aktarmanıza olanak tanır. Ek olarak, birçok dahili ayara sahip ve ek sunucuların veya eklentilerin kurulumunu gerektirmeyen yeni, optimize edilmiş bir teknolojidir.

WebRTC, Flash’ın yerini almaz: Flash’ın işlevselliğini kısmen uygulayabileceğiniz bir araçtır.

Teknik engeller

WebRTC teknolojisinin zorlukları vardır — TCP ve UDP protokollerini kullanır.

TCP protokolünün özelliği, verileri kayıpsız iletmesidir: kullanıcı kararlı bir görüntü alır, videoda kayıp veya hasar yoktur. Ancak bu protokolün veri aktarım miktarı konusunda sınırlamaları vardır. Örneğin, Full HD videoyu aynı anda beş kişiye aktaramazsınız.

Bu sorun UDP protokolü ile çözülmüştür. Bununla kullanıcılar, yüksek kaliteli görüntüleri ve videoları sınırlama olmaksızın iletebilir. Ancak bu protokolün de bir dezavantajı vardır: paket kaybına izin verir. İletilen dosyanın zarar görme olasılığı yüksek: görüntü titreyebilir, pikseller görülebilir vb.

Bu dezavantaj, üçüncü taraf sunuculara bağlanarak aşılabilir. Yüzlerce kullanıcı arasında bağlantının gerçekleşeceği WebRTC’ye dayalı büyük ölçekli bir proje geliştiriliyorsa, tarayıcıdan gelen yükü azaltmak için ek bir sunucu kullanmanız gerekir.

WebRTC en çok hangi projeler için uygundur?

Başlangıçta, WebRTC, herhangi bir ek sunucu kullanmadan eşler arası teknolojiyi kullanarak video konferans oluşturmak üzere tasarlanmış ve planlanmıştır. Bu nedenle teknoloji, tarayıcı tabanlı video konferans için mükemmeldir. Bir tarayıcının içindeki tam özellikli bir Skype işlevi gibidir.

WebRTC güvenli midir?

WebRTC, veri korumasını uygulayabileceğiniz üçüncü taraf hizmetleri kullanmaz. Bununla birlikte, teknoloji, veri aktarımının güvenliğini sağlayan kanıtlanmış ağ protokolleri aracılığıyla çalışır.

WebRTC için Analytics

Google Chrome tarayıcısında, WebRTC teknolojisini kullanarak veri aktarımını izleyebileceğiniz ayrı bir sayfa var. Bağlantının tüm istatistiklerini yansıtır: iletilen paket sayısı, ses ve video kalitesi, Stun / Turn sunucusu tarafından kullanılan tarayıcı yükü.

Kaynak: Andrew Sushevich – WebRTC: All You Need To Know About its Advantages and Technical Challenges

You may also like...