diff --git a/main.go b/main.go index 8f9ea9b0498ebd46b688f68101fbe4706151b9d0..a2fccbca2171e53e4e0b5c74f9674665993156fe 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,7 @@ func main() { // spew.Dump(cfg) xaal.SetupLogger() - client := mqttSetup(cfg.brokerHost, cfg.brokerPort, cfg.topic) + client := mqttSetup(cfg, mqttPublishHander) eng := xaal.NewEngine() gw := NewGW(client, cfg) diff --git a/mqtt.go b/mqtt.go index 399ee2d7f233551841a97d824f0f488d7cb82a0f..05288f5784a3f6964a9c58e88f56ea25fc2ca8d1 100644 --- a/mqtt.go +++ b/mqtt.go @@ -11,19 +11,19 @@ import ( ) // mqttSetup creates a new MQTT client -func mqttSetup(mqttBroker string, port int, topic string) MQTT.Client { +func mqttSetup(cfg *Config, publishHandler MQTT.MessageHandler) MQTT.Client { // This JS style of creating a client is awfully verbose opts := MQTT.NewClientOptions(). - AddBroker(fmt.Sprintf("tcp://%s:%d", mqttBroker, port)). + AddBroker(fmt.Sprintf("tcp://%s:%d", cfg.brokerHost, cfg.brokerPort)). SetClientID(mqttClientID). - SetDefaultPublishHandler(mqttPublishHander).SetAutoReconnect(true) + SetDefaultPublishHandler(publishHandler).SetAutoReconnect(true) client := MQTT.NewClient(opts) if token := client.Connect(); token.Wait() && token.Error() != nil { panic(token.Error()) } - slog.Debug("Connected to", "Broker", mqttBroker, "Port", port, "Client", mqttClientID) - if token := client.Subscribe(topic+"/#", 0, nil); token.Wait() && token.Error() != nil { + slog.Debug("Connected to", "Broker", cfg.brokerHost, "Port", cfg.brokerPort, "Client", mqttClientID) + if token := client.Subscribe(cfg.topic+"/#", 0, nil); token.Wait() && token.Error() != nil { panic(token.Error()) } return client