Golang sent data to MQTT
Published on 17.01.2022
MQTT is a lightweight, publish-subscribe network protocol that transports messages between devices. Golang has a very nice client which can be easily used for the purpose.
For example here is how to send data to my public free MQTT Broker - xMQTT
package main import ( "fmt" mqtt "github.com/eclipse/paho.mqtt.golang" "log" ) func main(){ var broker = "broker.xmqtt.net" var port = 8883 opts := mqtt.NewClientOptions() opts.AddBroker(fmt.Sprintf("tcps://%s:%d", broker, port)) opts.OnConnect = func(client mqtt.Client) { log.Println("Connected") } client := mqtt.NewClient(opts) if token := client.Connect(); token.Wait() && token.Error() != nil { panic(token.Error()) } for i := 0; i < 100; i++ { t := client.Publish("/random/test",0,false,fmt.Sprintf("event_id %d",i)) t.Wait() } client.Disconnect(5) log.Println("Events sent") }