Files
2018-03-18 13:20:49 +01:00

30 lines
848 B
Go

package mqttclient
import (
"log"
"github.com/eclipse/paho.mqtt.golang"
)
type SubscribeOptions struct {
Topic string
QoS byte
OnMessageReceived mqtt.MessageHandler
}
func Subscribe(connectionOptions *mqtt.ClientOptions, subscribeOptions SubscribeOptions) error {
connectionOptions.OnConnect = func(client mqtt.Client) {
log.Print("Connected to MQTT Broker.\n")
log.Printf("Will subscribe to topic %s", subscribeOptions.Topic)
if token := client.Subscribe(subscribeOptions.Topic, subscribeOptions.QoS, subscribeOptions.OnMessageReceived); token.Wait() && token.Error() != nil {
log.Printf("Could not subscribe %s\n", token.Error().Error())
}
}
client := mqtt.NewClient(connectionOptions)
if token := client.Connect(); token.Wait() && token.Error() != nil {
return token.Error()
}
return nil
}