2D sanal ofiste sesin yakındakilere ulaşması: SFU ve izin yönetimi

Bir sanal ofis uygulamasında ses, harita üzerindeki konuma göre yalnızca yakın insanlara ulaşması gerekir. Hotori Place'in yaklaşımı bunu SFU (Selective Forwarding Unit) ve izin yönetimi ile sağlıyor.

Temel fikir şu: uygulama sunucusu (Python FastAPI), her konuşmacının etrafında kimin olduğunu hesaplar ve o kişiye dinleyebileceği insanların listesini verir. Konuşmacının tarayıcısı bu listeyi LiveKit'e (kendi kendine barındırılan, açık kaynak SFU) track subscription permissions olarak gönderir. Sunucu hiçbir sesin karıştırılmasını yapmaz; LiveKit sadece izin verilen kişilere ses paketini iletir. Değiştirilmiş bir tarayıcı bile verilmemiş bir sesi çekemez.

Neden sunucuda karıştırma yapmıyorlar? Karıştırma (mixing), gizliliği bedava verir: sunucu her mikrofonun kodunu çözer, dinleyici başına bir karışım kodlar. Her tarayıcı yalnızca kendi karışımını alır, başka ses yoktur. Ama fiyatı yüksektir, dinleyici başına bir karışım. Harita üzerinde insanlar nadiren aynı ses setini aynı ses seviyesinde paylaşırlar; hemen hemen her dinleyici farklı bir karışım gerektirir. SFU yaklaşımı ise her ses akışını olduğu gibi iletir; sunucu yükü çok daha düşük.

Stack'te React ve Phaser (istemci), FastAPI WebSocket sunucusu, ve LiveKit (Apache-2.0 açık kaynak) var. Güvenlik açısından önemli: izin listesi istemcide değil sunucuda yönetilir, tarayıcı hiledesi yapamaz.

konu hakkında tepkinizi verebilirsiniz