MWSE/README.md

3.1 KiB
Raw Blame History

MWSE — Micro WebSocket Engine

Durum: Go yeniden yazımı (0.1.0) başlıyor. Mevcut Node.js engine ws.saqut.com'da canlı; çekirdek, concurrency'i doğru çözmek için Go'ya taşınıyor. Frontend SDK'nın giriş/çıkış sözleşmesi değişmiyor.

MWSE, kendisine bağlanan eşleri (peer) birbirleriyle eşleştirip aralarında düşük gecikmeli veri tünelleri kuran bir gerçek-zamanlı iletişim motorudur. Sunucu cihazları sanallaştırır; eşler birbirlerinin IP'sini veya cihaz türünü bilmeden, çift yönlü serbestçe haberleşir. Üstünde oda yönetimi, peer pairing, sanal adresleme, dosya transferi ve WebRTC sinyalleşmesi gelir.

Neden var?

Gerçek-zamanlı uygulama altyapısı bugün ya sadece transport (Socket.io) ya da pahalı SaaS (Twilio/LiveKit). MWSE'nin hedefi: birkaç satırda oda + mesaj + sesli/görüntülü görüşme kurabileceğin, kendi sunucunda çalışan açık bir motor.

const mwse = new MWSE({ endpoint: "wss://ws.saqut.com/" });

mwse.scope(async () => {
  const room = mwse.room({ name: "lobi", joinType: "free", ifexistsJoin: true });
  await room.join();
  room.on("message", (peer, data) => console.log(peer.socketId, data));
  room.broadcast("herkese merhaba");
});
  • ~20 satır → grup mesajlaşma
  • ~100 satır → sesli görüşme
  • ~500 satır → görüntülü görüşme

Tam örnekler için → Wiki.

Mimari (özet)

[Client SDK]  ⇄  WSTS protokolü  ⇄  [MWSE Engine]
   (frontend/)   (paket kimliklendirme,    (Source/: WebSocket, MessageRouter,
                  request/response/stream)   Services/{Auth, Room, Session,
                                             IPPressure, DataTransfer, YourID})
  • WSTS protokolü: WebSocket üzerine kurulu, giden/gelen paketleri kimliklendiren ve "kimden/kime" yönlendiren request-response-stream katmanı.
  • Sanal adresleme (IPPressure): uzun socket hash'leri yerine sanal IP / numara / kısa kod (ör. 15.214.11.74, 884, ZQT) atayıp eşleri kolayca çağırma.
  • Oda sistemi: free / invite / password / lock katılım türleri, per-connection okuma/yazma/bildirim ayarları.

Yol haritası

Sürüm İçerik
0.1.0 Go engine çekirdeği + concurrency (goroutine/channel/mutex) + go test -race süreç testleri
1.0.0 Go + Frontend + WebRTC tam parite (oda, pairing, sanal adres, tünel, signaling, demolar)
2.0.0 WebRTC Studio: tam WebRTC API, çoklu track/kamera, canvas compositing, SRS yayını, sanal IP çakışma + alt-network
2.5.0 JSON → binary protokol
3.0.0 Platform: Notify (offline/suit), aktif/pasif sync + datastore, 3. parti sunucu köprüsü

Detaylı görevler Issues ve milestone'larda. Tasarım bağlamı: todo.md.

Güvenlik

MWSE mesajları doğru hedefe ve bozulmadan iletmekten sorumludur. Ancak istemcilerin gönderdiği mesajlar sokete iletilmeden önce kullanıcı tarafında manipüle/taklit edilebilir; MWSE bunu doğrulamaz. Hassas verileri uygulama katmanında doğrula/şifrele.

Lisans

Bkz. LICENSE.