Mikro WebSocket Engine
Go to file
abdussamedulutas c058feb22d Ölçek ayarı, leak sağlamlaştırma ve #27/#28/#29 paritesi
Yüksek bağlantı sayısı + sürekli mesaj trafiği için engine'i sağlamlaştırır;
sınırsız bellek büyümesini (leak) kapatır; 1.0.0 engine parite issue'larını
(oda/pairing/sanal adresleme) tamamlar.

Ölçek/pool ayarı (config.ConnConfig, env-tunable, varsayılanlar yüksek):
- OutboundBuffer 1024, MaxMessageSize 16 MiB, read/write buffer, ping/pong/write
  timeout'ları yapılandırılabilir.
- gorilla WriteBufferPool (paylaşımlı sync.Pool) — yüksek bağlantıda büyük
  bellek tasarrufu. 150 bağlantı + ağır trafikte RSS ~43 MB.
- Dolu buffer'da düşür-ama-kapatma → relay teslimat %99.98 (150 bağlantı).

Leak düzeltmeleri (churn altında sınırsız büyüme yok):
- Pairing ters-indeksi (pairedBy): disconnect'te X'e değen tüm pair kenarları
  O(derece) temizlenir; tek-yönlü bekleyen istek çöpü kalmaz.
- Davet bekleme listesi: istemci waiting odalarını tutar, disconnect'te düşülür.
- realloc artık farklı adres verir (önce al sonra bırak).

#27/#28/#29 paritesi + ifexistsJoin; kapsamlı parite + leak testleri eklendi.
go build/vet/test -race ./... yeşil (18 servis testi). Detay: decisions.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 07:43:54 +03:00
Source Revision 2026-04-23 23:10:05 +03:00
frontend İçerik güncellemesi / Bugfix 2025-12-07 13:57:08 +03:00
internal Ölçek ayarı, leak sağlamlaştırma ve #27/#28/#29 paritesi 2026-06-17 07:43:54 +03:00
loadtest Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
public Revision 2026-04-23 23:10:05 +03:00
script Revision 2026-04-23 23:10:05 +03:00
.gitignore Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
LICENSE Initial commit 2022-11-16 20:31:27 +01:00
PORT-PROGRESS.md Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
README.md README.md Güncelle 2024-03-19 01:15:08 +03:00
REVIEW.md Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
decisions.md Ölçek ayarı, leak sağlamlaştırma ve #27/#28/#29 paritesi 2026-06-17 07:43:54 +03:00
go.mod Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
go.sum Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
index.js Revision 2026-02-26 08:12:40 +03:00
main.go Go engine portu (0.1.0 çekirdek) — Node.js engine'i race-free Go'ya taşı 2026-06-17 07:09:36 +03:00
package-lock.json Update packages #10 2023-11-04 20:37:49 +03:00
package.json Perfect nogation bugfixed 2025-07-14 23:22:37 +03:00
tsconfig.json D-TS 2023-05-16 10:49:36 +03:00

README.md

MWSE Nedir?

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.

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

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.

Geliştirici Dökümanı

Güvenlik !

Framework, bağlı tüm cihazlar arasında mesajları doğru hedefe, verinin bozulmadığını garanti ederek iletmekden sorumludur.

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

WebSocket topolojisi

image

Proje tarafından uygulanan load balance teknolojisi

image