summaryrefslogtreecommitdiff
path: root/mqtt.go
diff options
context:
space:
mode:
Diffstat (limited to 'mqtt.go')
-rw-r--r--mqtt.go18
1 files changed, 7 insertions, 11 deletions
diff --git a/mqtt.go b/mqtt.go
index 6d01103..a7b374d 100644
--- a/mqtt.go
+++ b/mqtt.go
@@ -9,9 +9,6 @@ import (
)
const (
- BROKER = `tcp://127.0.0.1:1883`
- CLIENT_ID = `siaserver`
- TOPIC_PREFIX = `sia`
QOS = byte(1)
RETAINED = true
MQTT_CONNECT_TIMEOUT = 1 * time.Second
@@ -28,14 +25,12 @@ type MQTTMessage struct {
Payload []byte
}
-func init() {
- mqttServerHealthTopic = fmt.Sprintf("%s/server/health", TOPIC_PREFIX)
-}
+func MQTTRun(config MQTTConfig, tx chan MQTTMessage) {
+ mqttServerHealthTopic = fmt.Sprintf("%s/server/health", config.TopicPrefix)
-func MQTTRun(tx chan MQTTMessage) {
opts := mqtt.NewClientOptions()
- opts.AddBroker(BROKER)
- opts.SetClientID(CLIENT_ID)
+ opts.AddBroker(config.Broker)
+ opts.SetClientID(config.ClientID)
opts.SetCleanSession(true)
opts.SetOnConnectHandler(MQTTOnConnectHandler)
opts.SetConnectionLostHandler(MQTTConnectionLostHandler)
@@ -56,12 +51,13 @@ func MQTTRun(tx chan MQTTMessage) {
defer client.Disconnect(MQTT_DISCONNECT_TIMEOUT_US)
for message := range tx {
- client.Publish(message.Topic, QOS, RETAINED, message.Payload)
+ topic := fmt.Sprintf("%s/%s", config.TopicPrefix, message.Topic)
+ client.Publish(topic, QOS, RETAINED, message.Payload)
}
}
func MQTTOnConnectHandler(c mqtt.Client) {
- log.Printf("Connected to MQTT broker (%s)", BROKER)
+ log.Printf("Connected to MQTT broker.")
c.Publish(mqttServerHealthTopic, QOS, true, []byte(`good`))
}