60 lines
3.1 KiB
Markdown
60 lines
3.1 KiB
Markdown
# 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.
|
||
|
||
```js
|
||
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](https://git.saqut.com/saqut/MWSE/wiki/Home).
|
||
|
||
## 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`.
|