mirror of
https://github.com/m1k1o/neko.git
synced 2025-08-06 10:20:26 +02:00
legacy: forward ws ping messages #506.
This commit is contained in:
parent
b8bfcaf4bf
commit
3c787baa40
2 changed files with 12 additions and 2 deletions
|
@ -142,7 +142,7 @@ func (h *LegacyHandler) Route(r types.Router) {
|
||||||
m = websocket.FormatCloseMessage(e.Code, e.Text)
|
m = websocket.FormatCloseMessage(e.Code, e.Text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
errc <- err
|
errc <- fmt.Errorf("src read message error: %w", err)
|
||||||
dst.WriteMessage(websocket.CloseMessage, m)
|
dst.WriteMessage(websocket.CloseMessage, m)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -163,12 +163,20 @@ func (h *LegacyHandler) Route(r types.Router) {
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
} else if errors.Is(err, ErrWebsocketSend) {
|
} else if errors.Is(err, ErrWebsocketSend) {
|
||||||
errc <- err
|
errc <- fmt.Errorf("dst write message error: %w", err)
|
||||||
break
|
break
|
||||||
} else {
|
} else {
|
||||||
h.logger.Error().Err(err).Msg("couldn't rewrite text message")
|
h.logger.Error().Err(err).Msg("couldn't rewrite text message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// forward ping messages
|
||||||
|
if msgType == websocket.PingMessage {
|
||||||
|
err = dst.WriteMessage(websocket.PingMessage, nil)
|
||||||
|
if err != nil {
|
||||||
|
errc <- err
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ If you want to run Neko behind a reverse proxy, you can use the following exampl
|
||||||
Do not forget to enable [`server.proxy=true`](/docs/v3/configuration#server.proxy) in your `config.yml` file to allow the server to trust the proxy headers.
|
Do not forget to enable [`server.proxy=true`](/docs/v3/configuration#server.proxy) in your `config.yml` file to allow the server to trust the proxy headers.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
Neko pings websocket client every 10 seconds, and client is scheduled to send [heartbeat](/docs/v3/configuration#session.heartbeat_interval) to the server every 120 seconds. Make sure, that your timeout settings in the reverse proxy are set accordingly.
|
||||||
|
|
||||||
## Traefik v2 {#traefik-v2}
|
## Traefik v2 {#traefik-v2}
|
||||||
|
|
||||||
See the example below for a `docker-compose.yml` file.
|
See the example below for a `docker-compose.yml` file.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue