Files
dokku-ui/internal/server/websocket.go
2023-04-25 14:33:14 +08:00

36 lines
902 B
Go

package server
import (
"github.com/gorilla/websocket"
"github.com/labstack/echo/v4"
"github.com/rs/zerolog/log"
"net/http"
)
type wsErrorFunc func(w http.ResponseWriter, r *http.Request, status int, reason error)
func createWSCheckOriginFunc(origin string) func(r *http.Request) bool {
return func(req *http.Request) bool {
log.Debug().
Str("origin", req.Header.Get("Origin")).
Str("host", origin).
Msg("ws check origin")
return true
}
}
func createWSErrorFunc(e *echo.Echo) wsErrorFunc {
return func(w http.ResponseWriter, r *http.Request, status int, reason error) {
err := echo.NewHTTPError(status, reason)
c := e.NewContext(r, w)
e.HTTPErrorHandler(err, c)
}
}
func initWebsocketUpgrader(cfg Config, router *echo.Echo) websocket.Upgrader {
return websocket.Upgrader{
CheckOrigin: createWSCheckOriginFunc(cfg.Host),
Error: createWSErrorFunc(router),
}
}