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)
|
||||
}
|
||||
}
|
||||
errc <- err
|
||||
errc <- fmt.Errorf("src read message error: %w", err)
|
||||
dst.WriteMessage(websocket.CloseMessage, m)
|
||||
break
|
||||
}
|
||||
|
@ -163,12 +163,20 @@ func (h *LegacyHandler) Route(r types.Router) {
|
|||
})
|
||||
continue
|
||||
} else if errors.Is(err, ErrWebsocketSend) {
|
||||
errc <- err
|
||||
errc <- fmt.Errorf("dst write message error: %w", err)
|
||||
break
|
||||
} else {
|
||||
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.
|
||||
:::
|
||||
|
||||
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}
|
||||
|
||||
See the example below for a `docker-compose.yml` file.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue