- Yalnızca birkaç satır kodla, sunucu olmadan birbirine bağlanan çok oyunculu web uygulamaları geliştirmeyi mümkün kılan bir kütüphane
- Tarayıcıdaki WebRTC temel alınarak, herkese açık ağlar sinyalleşme (signaling) kanalı olarak kullanılıyor ve P2P eşleştirme ile iletişim otomatikleştiriliyor
- BitTorrent, Nostr, MQTT, IPFS, Supabase, Firebase seçeneklerinden biri seçilerek sunucusuz eş keşfi yapılabiliyor
- Sinyalleşme sonrasındaki uygulama verileri, aracı bir ortamdan geçmeden P2P + E2E şifreleme ile aktarılıyor
- Rooms/yayın, otomatik serileştirme, büyük veriler için chunking/throttling, ilerleme olayları, oturum verisi şifreleme, akış metadata'sı gibi yüksek seviyeli soyutlamalar sunuyor
- Yalnızca tarayıcıda değil, Node/Deno/Bun üzerinde de çalışıyor; ayrıca TURN sunucusu yapılandırması, React hook'ları, sunucu tarafı çalıştırma gibi gerçek kullanım özelliklerini destekliyor
- Herkese açık altyapıyı yapılandırma gerektirmeden kullanma yaklaşımı sayesinde, çeşitli deneyler ve prototipleme için oldukça uygun
8 yorum
TURN sunucusunu atalarınız mı sağlıyor?
Kaynak koduna
'stun:stun.cloudflare.com:3478'gömülmüş gibi görünüyor.stundeğil,turn.stun, basitçe STUN ölçütüne göre kim olduğunuzu söyleyen bir şey olduğu için açık sunucular biraz var,ama
turntrafiği relay etmek zorunda olduğundan (pahalı olduğu için) ya para verip kullanmanız ya da kendiniz kurmanız gerekiyor.Ör.) https://github.com/coturn/coturn
Böyle bir şey.
Yalnızca
stunile iletişimin mümkün olduğu durumlar elbette çok oluyor ama buna basitçe "oluyor" demek biraz.....Oluyor...... gerçi oluyor ama..... hımm.. gibi bir his veriyor.
Eğer p2p eşleştirmeyse TURN gerekmez, değil mi?
WebRTC’de bahsettiğiniz "p2p eşleştirme"nin neyi kastettiğine göre değişir gibi görünüyor.
Karşılıklı olarak UDP üzerinden paket iletişimi yapılabilen durum
Karşılıklı olarak yalnızca STUN’un bildirdiği adreslerin bilindiği durum
durumsa, dediğiniz gibi TURN gerekmez.
durumda da koşullar elverişliyse ve karşılıklı UDP iletişimi başarılı olmuşsa TURN gerekmez.
durumda karşılıklı UDP üzerinden paket iletişimi başarısız olduğunda TURN gerekir.
Başarısızlığa yol açan etkenler şunlar olabilir:
Bu durumlarda TURN kullanılmalıdır.
(
yalnızca IPv4 <-> yalnızca IPv6durumunun çalışmadığını, hafızamı doğrularken ilk kez öğrendim)Evet, yani 2 numara. "Sunucusuz birbirine bağlanma", "kütüphane" denmiş ama siz biraz fazla şey beklemiyor musunuz...
Bahsetmek istediğiniz nokta tam olarak hangisi?
-> Eğer mesele buysa, demek ki benim bilgim eskiymiş. Bildiğim (paylaştığım) bilgilerden sonra durumun hangi noktada değiştiğini anlatırsanız sevinirim~!
-> skageektp’nin söylediği doğru. Sonuçta bu bir kütüphane olduğu için o kadarı tolere edilebilir. Ben fazla hassas davrandım.
Ben ise
3. Doğru düzgün kullanmak için yalnızca STUN yeterli değil, TURN da gerekiyor; bu yüzden biraz fazla abartılmış~
demek istiyordum.
1 ve 2 numaralı açıklamalar için
şeklinde düzeltiyorum. Orijinal yazıda yanlış anlaşılma payı var.