|
@@ -214,9 +214,9 @@ func (s *Session) event(messageType int, message []byte) (err error) {
|
|
|
|
|
|
switch e.Type {
|
|
|
case "READY":
|
|
|
- s.DataReady = true
|
|
|
var st *Ready
|
|
|
if err = unmarshalEvent(e, &st); err == nil {
|
|
|
+ go s.heartbeat(st.HeartbeatInterval)
|
|
|
if s.StateEnabled {
|
|
|
s.State.OnReady(st)
|
|
|
}
|
|
@@ -224,7 +224,6 @@ func (s *Session) event(messageType int, message []byte) (err error) {
|
|
|
s.OnReady(s, st)
|
|
|
}
|
|
|
}
|
|
|
- go s.heartbeat(st.HeartbeatInterval)
|
|
|
if s.OnReady != nil {
|
|
|
return
|
|
|
}
|
|
@@ -575,9 +574,21 @@ func (s *Session) sendHeartbeat() error {
|
|
|
|
|
|
|
|
|
func (s *Session) heartbeat(i time.Duration) {
|
|
|
+ s.Lock()
|
|
|
+
|
|
|
+
|
|
|
+ if s.listening == nil {
|
|
|
+ s.Unlock()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
listening := s.listening
|
|
|
|
|
|
+ s.DataReady = true
|
|
|
+
|
|
|
+ s.Unlock()
|
|
|
+
|
|
|
|
|
|
|
|
|
err := s.sendHeartbeat()
|