diff options
| author | xengineering <me@xengineering.eu> | 2025-12-20 13:38:14 +0100 |
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2025-12-20 13:38:14 +0100 |
| commit | bfd7b70c927d60242fb77b9b58a7c7aad73cf1bc (patch) | |
| tree | a39b7cc60cb258aed8dad4af37c73ed5a2bde83c | |
| parent | 12198f4d921eb6406d08a122e2e51971bf65e7fa (diff) | |
| download | sia-server-bfd7b70c927d60242fb77b9b58a7c7aad73cf1bc.tar sia-server-bfd7b70c927d60242fb77b9b58a7c7aad73cf1bc.tar.zst sia-server-bfd7b70c927d60242fb77b9b58a7c7aad73cf1bc.zip | |
Implement MQTT reconnects
This is a central requirement to ensure a restart of the MQTT broker
does not harm the Sia server operation.
| -rw-r--r-- | mqtt.go | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -15,7 +15,6 @@ const ( RETAINED = true MQTT_CONNECT_TIMEOUT = 1 * time.Second MQTT_DISCONNECT_TIMEOUT_US = 500 - MQTT_RECONNECT_PERIOD = 2 * time.Second ) type MQTTMessage struct { @@ -30,6 +29,9 @@ func MQTTRun(tx chan MQTTMessage) { opts.SetCleanSession(true) opts.SetOnConnectHandler(MQTTOnConnectHandler) opts.SetConnectionLostHandler(MQTTConnectionLostHandler) + opts.SetAutoReconnect(true) + opts.SetConnectRetry(true) + opts.SetConnectTimeout(MQTT_CONNECT_TIMEOUT) client := mqtt.NewClient(opts) @@ -37,8 +39,7 @@ func MQTTRun(tx chan MQTTMessage) { success := token.WaitTimeout(MQTT_CONNECT_TIMEOUT) if !success { - log.Printf("Timed out after %v.", MQTT_CONNECT_TIMEOUT) - return + log.Fatal("Initial connection to MQTT broker failed.") } defer client.Disconnect(MQTT_DISCONNECT_TIMEOUT_US) |
