README: Go yeniden yazımı + yol haritası
This commit is contained in:
parent
c623016841
commit
8a47141ff7
60
README.md
60
README.md
|
|
@ -1,23 +1,59 @@
|
||||||
# MWSE Nedir?
|
# MWSE — Micro WebSocket Engine
|
||||||
|
|
||||||
MWSE yani Micro Web Socket Engine, kendisine bağlanan eşleri birbirleriyle ile eşleştirerek, eşler arası veri tünelleri oluşturan geniş ölçekli bir mikroservistir.
|
> **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**.
|
||||||
|
|
||||||
Servis, bağlantı sağlayan cihazların verilerini kendi aralarında senkron etmek için kullanılabilir, cihazları gruplayabilir, odalar oluşturabilir, sohbet ve görüntülü görüşme yazılımları için alt yapı olarak kullanılabilir
|
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.
|
||||||
|
|
||||||
Bağlantı TCP tabanlı yüksek hızlı WebSocket protokolüne dayanır ve sunucunun cihazları sanallaştırması sayesinde diğer kişilerin IP adreslerini veya cihaz türü gibi bilgilere ihtiyaç duymadan düşük gecikmeli çift taraflı serbest iletişim kurmalarını sağlar.
|
## Neden var?
|
||||||
|
|
||||||
[Geliştirici Dökümanı](https://git.saqut.com/saqut/MWSE/wiki/Entegrasyon)
|
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.
|
||||||
|
|
||||||
# Güvenlik !
|
```js
|
||||||
|
const mwse = new MWSE({ endpoint: "wss://ws.saqut.com/" });
|
||||||
|
|
||||||
Framework, bağlı tüm cihazlar arasında mesajları doğru hedefe, verinin bozulmadığını garanti ederek iletmekden sorumludur.
|
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");
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
Bunların dışında hassas verilerin soket üzerinden iletilmesi şimdilik önerilmez, clientlerin ileteceği mesajlar **SOKETE İLETİLMEDEN ÖNCE** kullanıcılar tarafından manipüle edilebilir veya taklit edilebilir ve MWSE bunun doğrulamasını **YAPMAZ**
|
- **~20 satır** → grup mesajlaşma
|
||||||
|
- **~100 satır** → sesli görüşme
|
||||||
|
- **~500 satır** → görüntülü görüşme
|
||||||
|
|
||||||
## WebSocket topolojisi
|
Tam örnekler için → [Wiki](https://git.saqut.com/saqut/MWSE/wiki/Home).
|
||||||
|
|
||||||

|
## Mimari (özet)
|
||||||
|
|
||||||
## Proje tarafından uygulanan load balance teknolojisi
|
```
|
||||||
|
[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`.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue