golang开源的可嵌入应用程序高性能的MQTT服务
以下是一个使用Go语言开发的基于Eclipse Mosquitto的MQTT客户端的简单示例代码。
package main
import (
"fmt"
"log"
"time"
mqtt "github.com/eclipse/paho.mqtt.golang"
)
func main() {
opts := mqtt.NewClientOptions().AddBroker("tcp://broker.hivemq.com:1883")
opts.SetClientID("go-mqtt-client")
opts.SetUsername("")
opts.SetPassword("")
c := mqtt.NewClient(opts)
if token := c.Connect(); token.Wait() && token.Error() != nil {
log.Fatal(token.Error())
}
// Subscribe to topic
if token := c.Subscribe("go/mqtt/topic", 0, func(c mqtt.Client, msg mqtt.Message) {
fmt.Printf("Received message on topic: %s\nMessage: %s\n", msg.Topic(), string(msg.Payload()))
}); token.Wait() && token.Error() != nil {
log.Fatal(token.Error())
}
// Publish message every 5 seconds
for {
time.Sleep(5 * time.Second)
if token := c.Publish("go/mqtt/topic", 0, false, "Hello MQTT"); token.Wait() && token.Error() != nil {
log.Fatal(token.Error())
}
}
}
这段代码首先创建了一个MQTT客户端,并连接到了一个公共的MQTT代理(在本例中为HiveMQ的公共代理)。然后,它订阅了一个名为"go/mqtt/topic"的主题,并注册了一个回调函数来处理接收到的消息。最后,它每5秒钟发布一条消息到同一个主题。这个示例展示了如何使用Eclipse Mosquitto的Go语言客户端库进行基本的MQTT发布/订阅操作。
评论已关闭