Not: Bu arada zavallı Clubhouse un 3. parti AGORA.IO SDK sını kullanması sebebiyle ve o SDK da aslında signaling için oda ismini rtm token oluşturup vermesi sonucu bu token ı kullanarak odaya dışarıdan ismi görünmeden katılıp konuşmasını dinletmesi şeklinde bir açık çıkarılmış.. Ancak Clubhouse kendisine bunun bildirilmesiyle bu açığı fix etmişler..
CLUBHOUSE ses ile iletişimin kurulduğu sosyal bir ağ.. Davetiye ile kabul ediliyormuş kişiler.. Twitter ve whatsapp ın sesli olan şekli gibi düşünün..
Su an sadece IPhone lari destekliyor.. Biz teknolojisinin ne olabileceğine bakalım ..
Bu tür yazılımlarda RTP denilen protokol ki whatsapp bunu kullaniyor (SRTP olarak) veya webRTC teknolojisi ile kolayca bu işi yapmak mümkün..
Not: Son zamanlarda bu konuşma odalarında konuşulanların Clubhouse un kullandığı çin menşeli AGORA kütüphanesi yoluyla çin e aktarıldığı iddiaları var.. Bu tür altyapı yazılımları STREAMING teknolojisiyle mutlaka kayıt – saklama – karşı tarafa dinletme ile çalışır ama siz bunu sanki hemen dinliyormuş izlenimi taşırsınız.. Bir yere kayıt varsa o yere hem illegal erişim yapmak mümkün hem de kaydın saklanması gerekir.. Dolayısıyla olaya böyle bakmanızı isterim.. Sadece ses değil canlı görüntüyü streaming olarak nakleden örneğin PERISCOPE yazılımı da böyle çalışıyordu.. Onu da nasıl illegal olarak seyredeceğinizi veya kalp göndereceğinizi aynı altyapıyı yazan biri olarak biliyor ama burada açıklamıyorum.. Bunların dışında WEbRTC teknolojisi ile görüntü veya ses aktarma biraz daha güvenlidir ve eğer STUN/TURN server ınızı kendiniz kurarsanız o zaman P2P teknolojisi de olduğundan bunun tamper edilmesi çok daha zordur ve kayıt da tutulmaz çoğunlukla..
STUN ve TURN server kullanımını da katmak lazım.. STUN firewall arkasındaki cihazların yani evdeki wifi vb den bağlandığınızda dış public IP nizin iç IP ile NAT teknolojisi ile bir nevi eşleştirilmesi.. TURN ise relay yapmak için ve özellikle webRTC de kullanılıyor aksi halde görüntü ve ses karşı tarafa iki uçtan biri wifi arkasında veya firewall arkasında iken gitmiyor..
Her 2 seçenekte de signaling yani aradığınız kişinin sizin onu aradığınızı anlayacağı bir yapı ise XMPP gibi bir server ile sağlanıyor.. Ya da SIP ile bu işi yapmanız mümkün.. (AGORA.IO SDK sı kullanılmış bu da aynı xmpp gibi..)
Veri paketleri kesin UDP olarak gidiyor çünkü paket bildiğiniz gibi internette parçalara ayrılarak karşı tarafa gönderilir ve TCP protokolunde bu parçaların doğru gelip gelmediği kontrol edilir eksik ise yeniden istenir halbu ki UDP de böyle bir şey olmaz ve hem de hızlıdır.. Ancak paket kaybı UDP de yaşanırsa hafif ses de küçük problem olabilir ancak çok hissedilmeyebilir..Ben genelde UDP ama bazan da TCP kullanıyorum .. Bu testlerinize ve optimizasyonlara göre değişiyor..
Hatta signaling dışında mesaj iletimi ve kalp gönderimi vb her şeyi de XMPP ile yapmanız mümkün.. (Tabii kalp malp gönderilmiyor anladınız yani.. anlatmıştım nasıl oldugunu bir makalemde..)
Çok basit bir yazılım ama gördüğünüz gibi etkili..
Yazılımın android tarafı henüz yok. Çıktığında derin dalış ile kodlarını kırıp içeride başka ne olduğuna bakarım..