Fix keepalive

This commit is contained in:
Brandon Sturgeon 2023-09-21 03:38:23 -07:00
parent aa5a86c046
commit 1ed59e8b93
No known key found for this signature in database
GPG Key ID: D2B85AB23C6D80C2

View File

@ -12,18 +12,22 @@ var upgrader = websocket.Upgrader{}
func keepAlive(c *websocket.Conn, r *http.Request) {
ctx := r.Context()
ticker := time.NewTicker(2 * time.Second)
defer ticker.Stop()
for {
select {
case <-time.After(2 * time.Second):
case <-ticker.C:
err := c.WriteMessage(websocket.PingMessage, []byte("keepalive"))
if err != nil {
log.Print("Received an error when sending keepalive. Exiting keepalive loop")
return
}
case <-ctx.Done():
log.Print("Request context is done. Existing keepalive loop")
log.Print("Request context is done. Exiting keepalive loop")
return
}
}
}
func relay(w http.ResponseWriter, r *http.Request) {