summaryrefslogtreecommitdiff
path: root/mqtt.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-12-20 13:43:31 +0100
committerxengineering <me@xengineering.eu>2025-12-20 13:43:31 +0100
commit58d7c51baa053be8d6d4ec5f409fceef1c7c11b5 (patch)
treebc3ff513f9c7330ead53757875df5dc30d1f61b7 /mqtt.go
parentbfd7b70c927d60242fb77b9b58a7c7aad73cf1bc (diff)
downloadsia-server-58d7c51baa053be8d6d4ec5f409fceef1c7c11b5.tar
sia-server-58d7c51baa053be8d6d4ec5f409fceef1c7c11b5.tar.zst
sia-server-58d7c51baa053be8d6d4ec5f409fceef1c7c11b5.zip
Add MQTT keepalives
This issues ping request / response messages between the Sia server and the MQTT broker making sure an interrupted connection is noticed.
Diffstat (limited to 'mqtt.go')
-rw-r--r--mqtt.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/mqtt.go b/mqtt.go
index 63e5042..5c1b1ad 100644
--- a/mqtt.go
+++ b/mqtt.go
@@ -15,6 +15,7 @@ const (
RETAINED = true
MQTT_CONNECT_TIMEOUT = 1 * time.Second
MQTT_DISCONNECT_TIMEOUT_US = 500
+ MQTT_KEEPALIVE_PERIOD = 2 * time.Second
)
type MQTTMessage struct {
@@ -32,6 +33,7 @@ func MQTTRun(tx chan MQTTMessage) {
opts.SetAutoReconnect(true)
opts.SetConnectRetry(true)
opts.SetConnectTimeout(MQTT_CONNECT_TIMEOUT)
+ opts.SetKeepAlive(MQTT_KEEPALIVE_PERIOD)
client := mqtt.NewClient(opts)