3.1 KiB
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/lockkatı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.