From 8673fabccd0c8cae83c0db7c15d9d1f674bc2a3d Mon Sep 17 00:00:00 2001 From: Pieter Hollander Date: Sat, 17 Feb 2024 18:56:09 +0100 Subject: [PATCH] Implemented additional logic req --- main.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 637cf90..0ed1369 100644 --- a/main.go +++ b/main.go @@ -67,6 +67,16 @@ func main() { opts.SetUsername(os.Getenv("MQTT_USERNAME")) opts.SetPassword(os.Getenv("MQTT_PASSWORD")) opts.SetAutoReconnect(true) + opts.SetConnectionLostHandler(func(client mqtt.Client, err error) { + log.Printf("Connection lost: %v", err) + }) + opts.SetOnConnectHandler(func(client mqtt.Client) { + topic := os.Getenv("MQTT_TOPIC") + log.Println("Connected to MQTT broker, subscribing to topic...") + if token := client.Subscribe(topic, 0, mqttMessageHandler); token.Wait() && token.Error() != nil { + log.Printf("Error subscribing to MQTT topic %s: %v", topic, token.Error()) + } + }) // Connect to MQTT broker client := mqtt.NewClient(opts) @@ -74,12 +84,6 @@ func main() { log.Fatal(token.Error()) } - // Subscribe to MQTT topic - topic := os.Getenv("MQTT_TOPIC") - if token := client.Subscribe(topic, 0, mqttMessageHandler); token.Wait() && token.Error() != nil { - log.Fatal(token.Error()) - } - // Keep the program running select {} }