Files
go-socket/wsServer.go
T
GitProtogen 66e189d247 add cache
2026-03-16 13:50:22 +01:00

45 lines
949 B
Go

package main
import (
"context"
"log"
"net/http"
"time"
"github.com/coder/websocket"
"github.com/coder/websocket/wsjson"
)
func ServeConnection(responseWriter http.ResponseWriter, request *http.Request) {
connection, err := websocket.Accept(responseWriter, request, nil)
if err != nil {
log.Printf("websocket accept error: %v", err)
return
}
ctx, cancel := context.WithTimeout(context.Background(), time.Second*30)
defer cancel()
for {
var clientMessage any
err := wsjson.Read(ctx, connection, &clientMessage)
if err != nil {
log.Printf("read error: %clientMessage", err)
return
}
log.Printf("received: %clientMessage", clientMessage)
// process and optionally respond
err = wsjson.Write(ctx, connection, map[string]string{"status": "ok"})
if err != nil {
log.Printf("write error: %clientMessage", err)
return
}
}
}
func handleUnauthenticatedMessage() {
}
func handleAuthenticatedMessage() {}