Files
ForgeBucket/internal/api/handlers/ws.go
T
2026-05-06 23:13:06 +02:00

36 lines
600 B
Go

package handlers
import (
"net/http"
"nhooyr.io/websocket"
"nhooyr.io/websocket/wsjson"
)
type WSHandler struct{}
func NewWSHandler() *WSHandler {
return &WSHandler{}
}
func (h *WSHandler) Hub(w http.ResponseWriter, r *http.Request) {
conn, err := websocket.Accept(w, r, &websocket.AcceptOptions{
OriginPatterns: []string{"localhost:*"},
})
if err != nil {
return
}
defer conn.CloseNow()
ctx := r.Context()
for {
var msg map[string]any
if err := wsjson.Read(ctx, conn, &msg); err != nil {
break
}
if err := wsjson.Write(ctx, conn, msg); err != nil {
break
}
}
}