From a997ae29ad5297a85ef1e303ec36aaab9e163408 Mon Sep 17 00:00:00 2001 From: Wim Date: Sun, 14 Aug 2016 22:53:09 +0200 Subject: [PATCH] Add StatusLoop(), keeps connection alive --- matterclient/matterclient.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go index a1efa957..75e67c5c 100644 --- a/matterclient/matterclient.go +++ b/matterclient/matterclient.go @@ -534,6 +534,30 @@ func (m *MMClient) GetUser(userId string) *model.User { return m.Users[userId] } +func (m *MMClient) GetStatuses() error { + _, err := m.Client.GetStatuses([]string{m.User.Id}) + if err != nil { + return errors.New(err.DetailedError) + } + return nil +} + +func (m *MMClient) StatusLoop() { + for { + if m.WsQuit { + return + } + if m.WsConnected { + err := m.GetStatuses() + if err != nil { + m.Logout() + m.Login() + } + } + time.Sleep(time.Second * 30) + } +} + // initialize user and teams func (m *MMClient) initUser() error { m.Lock()