forked from CFC-Servers/cfc_chat_transit
Fix keepalive
This commit is contained in:
parent
aa5a86c046
commit
1ed59e8b93
@ -12,19 +12,23 @@ 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) {
|
||||
c, err := upgrader.Upgrade(w, r, nil)
|
||||
|
Loading…
Reference in New Issue
Block a user