[engine] Oda sistemi paritesi #27

Closed
opened 2026-06-16 23:54:06 +03:00 by saqut · 1 comment
Owner

Node engine'indeki oda sisteminin Go'da tam paritesi.

Kapsam:

  • Oda yaşam döngüsü: create / join / leave / kapatma. Oda bir kez oluşturulunca aynı isimle tekrar açılamaz; ayarları ilk oluşturan belirler.
  • Katılım türü (joinType): free (herkese açık), invite (davetle), password (şifreli, credential ile), lock (kapalı).
  • ifexistsJoin: true ise oluşturma sırasında "oda zaten var" yanıtında hata vermek yerine odaya katılır.
  • Bildirim ayarları: notifyActionInvite / notifyActionJoined / notifyActionEjected — katılma/ayrılma/çıkarılma olaylarının odadaki diğer peer'lere iletilip iletilmeyeceği.
  • Per-connection oda ayarları: her bağlantı için ayrı ayrı — bir kullanıcı giren/çıkan bildirimlerini almak istemeyebilir; ayrıca mesaj okuyabilir/gönderebilir (writable / readable) ayarları bağlantı bazında olmalı.
  • Oda oluşturanın kendi session'ı: odayı kuran kişi otomatik olarak kendi oturumuna bağlı sayılır.

Bitti kriteri: tüm joinType'lar + per-connection ayarlar Go engine'de çalışıyor; SDK API'si (mwse.room({...})) değişmeden aynı davranıyor; go test -race yeşil.

Node engine'indeki oda sisteminin Go'da tam paritesi. **Kapsam:** - Oda yaşam döngüsü: `create` / `join` / `leave` / kapatma. Oda bir kez oluşturulunca aynı isimle tekrar açılamaz; ayarları ilk oluşturan belirler. - Katılım türü (`joinType`): `free` (herkese açık), `invite` (davetle), `password` (şifreli, `credential` ile), `lock` (kapalı). - `ifexistsJoin`: true ise oluşturma sırasında "oda zaten var" yanıtında hata vermek yerine odaya katılır. - Bildirim ayarları: `notifyActionInvite` / `notifyActionJoined` / `notifyActionEjected` — katılma/ayrılma/çıkarılma olaylarının odadaki diğer peer'lere iletilip iletilmeyeceği. - **Per-connection oda ayarları:** her bağlantı için ayrı ayrı — bir kullanıcı giren/çıkan bildirimlerini almak istemeyebilir; ayrıca mesaj okuyabilir/gönderebilir (writable / readable) ayarları bağlantı bazında olmalı. - **Oda oluşturanın kendi session'ı:** odayı kuran kişi otomatik olarak kendi oturumuna bağlı sayılır. **Bitti kriteri:** tüm joinType'lar + per-connection ayarlar Go engine'de çalışıyor; SDK API'si (`mwse.room({...})`) değişmeden aynı davranıyor; `go test -race` yeşil.
saqut added this to the 1.0.0 milestone 2026-06-16 23:54:06 +03:00
saqut added the
engine
go
labels 2026-06-16 23:54:06 +03:00
Author
Owner

go-rewrite'ta tamamlandı. Oda yaşam döngüsü (create/join/leave/close), tüm joinType'lar (free/invite/password/lock), ifexistsJoin, per-connection bildirim ayarları (notifyPairInfo/roomInfo + writable/readable), oluşturanın otomatik katılımı. Testler: TestRoomJoinTypes, TestRoomIfExistsJoin, TestRoomInviteFlow, TestRoomPerConnectionNotifySuppression + waiting-list leak testi — go test -race yeşil. SDK tel sözleşmesi korundu (tam TS SDK entegrasyonu #32'de doğrulanacak).

go-rewrite'ta tamamlandı. Oda yaşam döngüsü (create/join/leave/close), tüm joinType'lar (free/invite/password/lock), ifexistsJoin, per-connection bildirim ayarları (notifyPairInfo/roomInfo + writable/readable), oluşturanın otomatik katılımı. Testler: TestRoomJoinTypes, TestRoomIfExistsJoin, TestRoomInviteFlow, TestRoomPerConnectionNotifySuppression + waiting-list leak testi — go test -race yeşil. SDK tel sözleşmesi korundu (tam TS SDK entegrasyonu #32'de doğrulanacak).
saqut closed this issue 2026-06-17 07:46:04 +03:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: saqut/MWSE#27
No description provided.