aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/game/ws.go
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-07-28 20:09:09 +0900
committernsfisis <nsfisis@gmail.com>2024-07-29 02:32:26 +0900
commitdaaf81ae931654e20f882fbc6bbc4a02cbfc0273 (patch)
tree2d0eb7c9f40e28a4295dc1065c80d5d891a8995a /backend/game/ws.go
parent0b90018afbd438d61db7b41e5c3ea41cbb563bfe (diff)
downloadphperkaigi-2025-albatross-daaf81ae931654e20f882fbc6bbc4a02cbfc0273.tar.gz
phperkaigi-2025-albatross-daaf81ae931654e20f882fbc6bbc4a02cbfc0273.tar.zst
phperkaigi-2025-albatross-daaf81ae931654e20f882fbc6bbc4a02cbfc0273.zip
feat(backend): partially implement gaming
Diffstat (limited to 'backend/game/ws.go')
-rw-r--r--backend/game/ws.go28
1 files changed, 20 insertions, 8 deletions
diff --git a/backend/game/ws.go b/backend/game/ws.go
index 2ed17af..013db7a 100644
--- a/backend/game/ws.go
+++ b/backend/game/ws.go
@@ -17,28 +17,40 @@ const (
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
+ CheckOrigin: func(r *http.Request) bool {
+ // TODO: insecure!
+ return true
+ },
}
-func servePlayerWs(hub *GameHub, w http.ResponseWriter, r *http.Request, team string) error {
+func servePlayerWs(hub *gameHub, w http.ResponseWriter, r *http.Request, team string) error {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
return err
}
- client := &GameClient{hub: hub, conn: conn, send: make(chan *Message), team: team}
- client.hub.register <- client
+ player := &playerClient{
+ hub: hub,
+ conn: conn,
+ s2cMessages: make(chan playerMessageS2C),
+ }
+ hub.registerPlayer <- player
- go client.writePump()
- go client.readPump()
+ go player.writePump()
+ go player.readPump()
return nil
}
-func serveWatcherWs(hub *GameHub, w http.ResponseWriter, r *http.Request) error {
+func serveWatcherWs(hub *gameHub, w http.ResponseWriter, r *http.Request) error {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
return err
}
- watcher := &GameWatcher{hub: hub, conn: conn, send: make(chan *Message)}
- watcher.hub.registerWatcher <- watcher
+ watcher := &watcherClient{
+ hub: hub,
+ conn: conn,
+ s2cMessages: make(chan watcherMessageS2C),
+ }
+ hub.registerWatcher <- watcher
go watcher.writePump()
go watcher.readPump()