Yaklaşık altı ay önce bir bilgisayarı tarayıcı aracılığıyla kontrol edecek bir program yapmaya karar verdim. Görüntüleri tarayıcıya aktaran ve kontrol için imleç koordinatlarını alan basit, tek soketli bir HTTP sunucusuyla başladım.
Belli bir aşamada WebRTC teknolojisinin bu amaçlara çok uygun olduğunu fark ettim. Chrome tarayıcının böyle bir çözümü var, bir uzantı aracılığıyla kuruluyor. Ancak kurulum gerektirmeden çalışacak hafif bir program yapmak istedim.
İlk önce Google'ın sağladığı kütüphaneyi kullanmaya çalıştım ancak derlendikten sonra 500MB yer kaplıyor. WebRTC yığınının tamamını neredeyse sıfırdan uygulamak zorunda kaldım ve her şeyi 2.5 MB'lık bir exe dosyasına sığdırmayı başardım. Bir arkadaşım JS'deki arayüz konusunda yardımcı oldu ve biz de bu sonuca vardık.
Programı çalıştıralım:
Bağlantıyı bir tarayıcı sekmesinde açın ve masaüstüne tam erişim elde edin:
Bağlantı kurulum sürecinin kısa bir animasyonu:
Chrome, Firefox, Safari, Opera tarafından desteklenir.
Ses iletmek, sesli arama yapmak, panoyu yönetmek, dosyaları aktarmak ve kısayol tuşlarını aramak mümkündür.
Program üzerinde çalışırken bir düzine RFC'yi incelemem ve internette WebRTC protokolünün çalışması hakkında yeterli bilgi olmadığını anlamam gerekiyordu. İçinde kullanılan teknolojiler hakkında bir makale yazmak istiyorum, aşağıdaki sorulardan hangilerinin topluluğun ilgisini çektiğini öğrenmek istiyorum:
- SDP akış verisi açıklama protokolü
- ICE adayları ve iki nokta STUN ve TURN sunucuları arasında bağlantı kurulması
- DTLS bağlantısı ve anahtarların RTP oturumuna aktarılması
- Medya verilerinin aktarımı için şifrelemeli RTP ve RTСP protokolleri
- H264, VP8 ve Opus'u RTP aracılığıyla aktarın
- İkili veri aktarımı için SCTP bağlantısı
Kaynak: habr.com