Close websocket connections and allow the client to re-connect on send errors; ref pterodactyl/panel#3596
This commit is contained in:
@@ -75,7 +75,7 @@ func NewTokenPayload(token []byte) (*tokens.WebsocketPayload, error) {
|
||||
return &payload, nil
|
||||
}
|
||||
|
||||
// Returns a new websocket handler using the context provided.
|
||||
// GetHandler returns a new websocket handler using the context provided.
|
||||
func GetHandler(s *server.Server, w http.ResponseWriter, r *http.Request) (*Handler, error) {
|
||||
upgrader := websocket.Upgrader{
|
||||
// Ensure that the websocket request is originating from the Panel itself,
|
||||
@@ -116,6 +116,12 @@ func (h *Handler) Uuid() uuid.UUID {
|
||||
return h.uuid
|
||||
}
|
||||
|
||||
func (h *Handler) Logger() *log.Entry {
|
||||
return log.WithField("subsystem", "websocket").
|
||||
WithField("connection", h.Uuid().String()).
|
||||
WithField("server", h.server.ID())
|
||||
}
|
||||
|
||||
func (h *Handler) SendJson(v *Message) error {
|
||||
// Do not send JSON down the line if the JWT on the connection is not valid!
|
||||
if err := h.TokenValid(); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user