commit 05c53e1190d867ab9200620a9c4ca6fe8805778a
Author: Wim <wim@42.be>
Date: Sat Jul 01 17:49:12 2017 +0000
diff --git a/matterclient/matterclient.go b/matterclient/matterclient.go
index de2aa94..afcedcd 100644
--- a/matterclient/matterclient.go
+++ b/matterclient/matterclient.go
@@ -10010 +1008 @@ func (m *MMClient) Login() error {
Jitter: true,
}
uriScheme := "https://"
- wsScheme := "wss://"
if m.NoTLS {
uriScheme = "http://"
- wsScheme = "ws://"
}
// login to mattermost
m.Client = model.NewClient(uriScheme + m.Credentials.Server)
@@ -1826 +18024 @@ func (m *MMClient) Login() error {
// set our team id as default route
m.Client.SetTeamId(m.Team.Id)
+ m.wsConnect()
+
+ return nil
+}
+
+func (m *MMClient) wsConnect() {
+ b := &backoff.Backoff{
+ Min: time.Second,
+ Max: 5 * time.Minute,
+ Jitter: true,
+ }
+
+ m.WsConnected = false
+ wsScheme := "wss://"
+ if m.NoTLS {
+ wsScheme = "ws://"
+ }
+
// setup websocket connection
wsurl := wsScheme + m.Credentials.Server + model.API_URL_SUFFIX_V3 + "/users/websocket"
header := http.Header{}
@@ -1906 +2067 @@ func (m *MMClient) Login() error {
m.log.Debugf("WsClient: making connection: %s", wsurl)
for {
wsDialer := &websocket.Dialer{Proxy: http.ProxyFromEnvironment, TLSClientConfig: &tls.Config{InsecureSkipVerify: m.SkipTLSVerify}}
+ var err error
m.WsClient, _, err = wsDialer.Dial(wsurl, header)
if err != nil {
d := b.Duration()
@@ -19915 +21612 @@ func (m *MMClient) Login() error {
}
break
}
- b.Reset()
m.log.Debug("WsClient: connected")
m.WsSequence = 1
m.WsPingChan = make(chan *model.WebSocketResponse)
// only start to parse WS messages when login is completely done
m.WsConnected = true
-
- return nil
}
func (m *MMClient) Logout() error {
@@ -2407 +2547 @@ func (m *MMClient) WsReceiver() {
if _, rawMsg, err = m.WsClient.ReadMessage(); err != nil {
m.log.Error("error:", err)
// reconnect
- m.Login()
+ m.wsConnect()
}
var event model.WebSocketEvent