WebRTC (Web Gerçek Zamanlı İletişim), mobil ve masaüstü platformları için açık kaynaklı bir iletişim teknolojisidir. Teknoloji, eklenti gerektirmeyen API’ler üzerine kurulmuştur ve 2018’deki ilk kararlı sürümden bu yana WebRTC, tüm büyük web tarayıcılarından ve işletim sistemlerinden destek almıştır.
WebRTC, çeşitli standartlar ve protokoller üzerine kurulmuştur. Birçok amaç için kullanılabilecek kadar yeteneklidir. Ancak WebRTC, genellikle gerçek zamanlı ses ve video iletişiminde kullanılır. WebRTC kullanan uygulamaların tarayıcı tabanlı olması yaygındır. Günümüzde WebRTC kullanan, Facebook Messenger ve Whatsapp gibi bağımsız uygulamalarda vardır.
WebRTC’yi benzersiz kılan şey, kişiden kişiye iletişime olanak sağlamasıdır. Bu, WebRTC’nin iki cihazı doğrudan bağlamanın ve ses ve video verilerini gerçek zamanlı olarak aktarmanın tüm ayrıntılarını ele aldığı anlamına gelir.
Gerçek zamanlı iletişim yetenekleri, WebRTC’yi gerçek zamanlı konuşma gerektiren hemen hemen her şey için ideal bir teknoloji haline getirir.
Örneğin, Telnyx ile dünyanın herhangi bir yerindeki herhangi bir telefon numarasını web tarayıcınızdan aramak için WebRTC’yi kullanabilirsiniz.
WebRTC, tarayıcılarda ve bağımsız uygulamalarda gerçek zamanlı medya iletişimine olanak tanır. WebRTC, geliştiricilerin, son kullanıcının herhangi bir tarayıcı eklentisi yüklemesini gerektirmeden, sesli ve görüntülü iletişimleri doğrudan web sayfalarına yerleştirmesine olanak tanır. WebRTC API paketi, geliştiricilerin WebRTC’yi gerçek zamanlı iletişim uygulamalarında kullanmasını da sağlar.
WebRTC Nasıl Çalışır?
Genel olarak konuşursak, bir WebRTC bağlantısı şu şekildedir:
Cihazınız > STUN sunucusu > Eşler arası iletişim kanalı > Alıcının cihazı
Ancak, her adımda ilgili süreçler vardır.
Bir WebRTC sesli veya görüntülü arama başlattığınızda, WebRTC uygulamanızın aramada bağlanacak diğer tüm cihazlarla bağlantı kurması gerekir.
Bir WebRTC bağlantısı kurulmadan önce WebRTC uygulamasının güvenlik duvarı ve NAT’ınız arasında gezinmesi gerekir. Güvenlik duvarları ve NAT cihazları, bilgisayarınız için dış dünyaya yayın yapan ve özel IP adresinizi maskeleyen, herkese açık bir IP adresi oluşturarak çalışır.
Bilgisayarınız yalnızca özel IP adresinizi bilir. Böylece WebRTC uygulaması, herkese açık IP adresinizi almak için STUN (NAT için Oturum Geçişi Yardımcı Programları) sunucusuyla bağlantı kurar. Bu şekilde WebRTC uygulaması, gelen bağlantıyı doğru IP adresine yönlendirebilir.
Herkese açık IP adresiniz STUN sunucusundan alındığında, WebRTC uygulaması aramaya bağlanacak diğer cihazlar için halka açık IP’yi alır. Uygulama gerekli tüm IP adreslerini öğrendikten sonra, ICE (Etkileşimli Bağlantı Kurulumu) adayları olarak da adlandırılan olası bağlantı yapılandırmalarının bir listesini oluşturur ve en verimli yapılandırmayı seçer.
WebRTC uygulaması daha sonra WebRTC aramasındaki tüm cihazların ses ve video verilerini gerçek zamanlı olarak değiştirebileceği özel bir veri kanalı açmak için bu bağlantı yapılandırmasını kullanır. Bağlantı yapılandırmasını yalnızca görüşmedeki cihazlar bildiğinden, bağlantı özeldir ve görüşmede olmayan hiç kimse tarafından erişilemez.
Bu, WebRTC’deki tüm cihazların ses ve video akışlarını doğrudan birbirine ilettiği WebRTC iletişimi için olağan bağlantı yöntemidir. Ancak bu doğrudan bağlantı bazen kurulamaz.
Bu durumlarda, WebRTC uygulaması bir TURN (NAT Çevresindeki Röleleri Kullanarak Geçiş) sunucusu kullanır. Sıra sunucusu sadece bir tekrarlayıcı görevi görür. Bir WebRTC aramasında cihaz arasında doğrudan bir bağlantı kurulamazsa, uygulama bilgisayarların ses ve video verilerini TURN sunucusuna göndermesini sağlar ve bu sunucu verileri alıcı cihaza iletir ve bunun tersi de geçerlidir.
Ancak, WebRTC iletişimi için bir TURN sunucusu kullanmak son çaredir. TURN sunucuları süper güvenilir olmalı ve önemli bir işlem gücüne ve bant genişliğine sahip olmalıdır. Bu maliyetlidir ve karmaşıklık ekler. Bu nedenle, mümkün olduğunda WebRTC iletişimi için doğrudan bağlantıları kullanmak en verimli yöntemdir.
Genellikle destekleyici teknolojiler, bir WebRTC çağrısındaki cihazlar arasındaki karmaşık bağlantı noktaları, protokoller ve ağlar sisteminde gezinmek için kullanılır. API’ler, kameralara ve mikrofonlara erişmek ve sesli ve görsel verileri toplamak için tercih edilir.
Cihazları eşler arası bağlantı yoluyla bağlamak, gerçek zamanlı iletişim sağlamanın iyi bir yolu olsa da, mükemmel bir sistem değildir.