From c82918ad3564098487d5ac4a223ee5d95e76ac3e Mon Sep 17 00:00:00 2001 From: abhishek9686 Date: Wed, 27 Mar 2024 14:56:47 +0700 Subject: [PATCH] add mq connection lost handler on server --- mq/mq.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mq/mq.go b/mq/mq.go index ca6f0a2e..8d72a086 100644 --- a/mq/mq.go +++ b/mq/mq.go @@ -9,6 +9,7 @@ import ( mqtt "github.com/eclipse/paho.mqtt.golang" "github.com/gravitl/netmaker/logger" "github.com/gravitl/netmaker/servercfg" + "golang.org/x/exp/slog" ) // KEEPALIVE_TIMEOUT - time in seconds for timeout @@ -91,6 +92,13 @@ func SetupMQTT() { opts.SetOrderMatters(false) opts.SetResumeSubs(true) }) + opts.SetConnectionLostHandler(func(c mqtt.Client, e error) { + slog.Warn("detected broker connection lost", "err", e.Error()) + c.Disconnect(250) + slog.Info("re-initiating MQ connection") + SetupMQTT() + + }) mqclient = mqtt.NewClient(opts) tperiod := time.Now().Add(10 * time.Second) for {