[frontend] SDK'yı yeni Go engine'e bağla + I/O sözleşmesini doğrula #32

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

Mevcut frontend SDK değişmeden çalışmalı. AI ile hafif refactor serbest; ama public API sabit.

Mevcut frontend SDK **değişmeden** çalışmalı. AI ile hafif refactor serbest; ama public API sabit.
saqut added this to the 1.0.0 milestone 2026-06-16 23:54:09 +03:00
saqut added the
frontend
label 2026-06-16 23:54:09 +03:00
Author
Owner

Tamamlandı (go-rewrite, commit 945b762).

Yaklaşım: Public SDK API'si değişmedi (sadece #33 için Peer.send/Room.send iç WOM yönlendirmesi + EventPool.only() eklendi; imzalar sabit). I/O sözleşmesi tarayıcısız, otomatik bir entegrasyon harness'i ile doğrulandı: internal/httpserver/contract_test.go gerçek engine'i (hub + services + HTTP yüzeyi) httptest + gerçek gorilla WebSocket istemcisi üzerinden ayağa kaldırır ve SDK'nın gönderdiği WSTS frame'lerini birebir konuşup yanıtların SDK'nın destructure ettiği şekille eşleştiğini assert eder.

Doğrulanan akışlar:

  • my/socketid (Peer.metadata) → [id, n, 'E']
  • create-room / joinroom{status:'success', room:{id,...}}
  • pairing: request/pairaccept/pair + request/pair/accepted/pair sinyalleri (string-id slot)
  • pack/to relay (SendOnly WOM) → karşı uçta [{from,pack},'pack']
  • request/toresponse/to round-trip (aynı id, out-of-band, #33 ile uyumlu)
  • saQut heartbeat ping/pong (10s yerine testte 80ms)

go test -race ./... tamamen yeşil. SDK gerçek bir tarayıcıda da bu frame'lerin aynısını ürettiği için engine ile uyumludur.

Tamamlandı (go-rewrite, commit 945b762). **Yaklaşım:** Public SDK API'si **değişmedi** (sadece #33 için `Peer.send`/`Room.send` iç WOM yönlendirmesi + `EventPool.only()` eklendi; imzalar sabit). I/O sözleşmesi tarayıcısız, otomatik bir entegrasyon harness'i ile doğrulandı: `internal/httpserver/contract_test.go` gerçek engine'i (hub + services + HTTP yüzeyi) `httptest` + gerçek gorilla WebSocket istemcisi üzerinden ayağa kaldırır ve **SDK'nın gönderdiği WSTS frame'lerini birebir** konuşup yanıtların SDK'nın destructure ettiği şekille eşleştiğini assert eder. **Doğrulanan akışlar:** - `my/socketid` (Peer.metadata) → `[id, n, 'E']` - `create-room` / `joinroom` → `{status:'success', room:{id,...}}` - pairing: `request/pair`→`accept/pair` + `request/pair`/`accepted/pair` **sinyalleri** (string-id slot) - `pack/to` relay (SendOnly WOM) → karşı uçta `[{from,pack},'pack']` - `request/to`→`response/to` round-trip (aynı id, out-of-band, #33 ile uyumlu) - `saQut` heartbeat ping/pong (10s yerine testte 80ms) `go test -race ./...` tamamen yeşil. SDK gerçek bir tarayıcıda da bu frame'lerin aynısını ürettiği için engine ile uyumludur.
saqut closed this issue 2026-06-17 08:16:54 +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#32
No description provided.