diff --git a/wsapi.go b/wsapi.go index 417d07f..1b7a734 100644 --- a/wsapi.go +++ b/wsapi.go @@ -427,10 +427,11 @@ func (s *Session) Heartbeat(i time.Duration) { s.heartbeatLock.Unlock() return } - s.heartbeatRunning = true - defer func() { s.heartbeatRunning = false }() s.heartbeatLock.Unlock() + defer func() { s.heartbeatRunning = false }() + s.heartbeatRunning = true + // send first heartbeat immediately because lag could put the // first heartbeat outside the required heartbeat interval window ticker := time.NewTicker(i * time.Millisecond)