mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
refactor client mq connection logic2
This commit is contained in:
@@ -248,27 +248,28 @@ func setupMQTT(cfg *config.ClientConfig, publish bool) (mqtt.Client, error) {
|
|||||||
logger.Log(0, "detected broker connection lost for", cfg.Server.Server)
|
logger.Log(0, "detected broker connection lost for", cfg.Server.Server)
|
||||||
})
|
})
|
||||||
client := mqtt.NewClient(opts)
|
client := mqtt.NewClient(opts)
|
||||||
|
var connecterr error
|
||||||
for count := 0; count < 3; count++ {
|
for count := 0; count < 3; count++ {
|
||||||
|
connecterr = nil
|
||||||
if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
|
if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
|
||||||
logger.Log(0, "unable to connect to broker, retrying ...")
|
logger.Log(0, "unable to connect to broker, retrying ...")
|
||||||
var err error = nil
|
|
||||||
if token.Error() == nil {
|
if token.Error() == nil {
|
||||||
err = errors.New("connect timeout")
|
connecterr = errors.New("connect timeout")
|
||||||
} else {
|
} else {
|
||||||
err = token.Error()
|
connecterr = token.Error()
|
||||||
}
|
}
|
||||||
if err != nil {
|
if connecterr != nil {
|
||||||
err = checkBroker(cfg.Server.Server, cfg.Server.MQPort)
|
connecterr = checkBroker(cfg.Server.Server, cfg.Server.MQPort)
|
||||||
}
|
}
|
||||||
logger.Log(0, "could not connect to broker", cfg.Server.Server, err.Error())
|
logger.Log(0, "could not connect to broker", cfg.Server.Server)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err != nil {
|
if connecterr != nil {
|
||||||
reRegisterWithServer(cfg)
|
reRegisterWithServer(cfg)
|
||||||
}
|
//try after re-registering
|
||||||
//try after re-registering
|
if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
|
||||||
if token := client.Connect(); !token.WaitTimeout(30*time.Second) || token.Error() != nil {
|
return client, errors.New("unable to connect to broker")
|
||||||
return client, errors.New("unable to connect to broker")
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return client, nil
|
return client, nil
|
||||||
|
Reference in New Issue
Block a user