Files
OliveTin/internal/httpservers/websocket.go
T

41 lines
691 B
Go

package httpservers
import (
"time"
log "github.com/sirupsen/logrus"
"net/http"
"nhooyr.io/websocket"
"nhooyr.io/websocket/wsjson"
"context"
)
func handleWebsocket(w http.ResponseWriter, r *http.Request) bool {
c, err := websocket.Accept(w, r, nil)
if err != nil {
log.Warnf("Websocket issue: %v", err)
return false
}
defer c.Close(websocket.StatusInternalError, "Goodbye")
ctx, cancel := context.WithTimeout(r.Context(), time.Second*10)
defer cancel()
var v interface{}
err = wsjson.Read(ctx, c, v)
log.Printf("recv: %v", v)
if err != nil {
log.Warnf("Websocket issue: %v", err)
return false
}
c.Close(websocket.StatusNormalClosure, "")
return true
}