Go 使用mqtt
在Go中使用MQTT,你可以使用go-mqtt
库。以下是一个简单的例子,展示了如何连接到MQTT代理并发布一条消息。
首先,你需要安装go-mqtt
库:
go get github.com/eclipse/paho.mqtt.golang
然后,你可以使用以下代码连接到MQTT代理并发布一条消息:
package main
import (
"fmt"
"github.com/eclipse/paho.mqtt.golang"
"os"
"time"
)
func main() {
// 配置TLS选项,如果不需要TLS,则为nil
tlsConfig := &tls.Config{
// 配置TLS选项
}
// 创建MQTT客户端选项
opts := mqtt.NewClientOptions().
AddBroker("tcp://broker.hivemq.com:1883"). // 替换为你的MQTT代理地址
SetClientID("go-mqtt-client"). // 设置客户端ID
SetUsername("your_username"). // 设置用户名
SetPassword("your_password"). // 设置密码
SetCleanSession(true). // 设置是否清理会话
SetTLSConfig(tlsConfig) // 设置TLS配置
// 创建客户端
c := mqtt.NewClient(opts)
if token := c.Connect(); token.Wait() && token.Error() != nil {
fmt.Println("连接失败:", token.Error())
os.Exit(1)
}
// 发布消息
if token := c.Publish("go/mqtt/topic", 0, false, "Hello MQTT"); token.Wait() && token.Error() != nil {
fmt.Println("发布失败:", token.Error())
os.Exit(1)
}
// 等待一会儿以便于订阅消息
time.Sleep(2 * time.Second)
// 断开连接
c.Disconnect(0)
}
确保替换代理地址、用户名、密码以及你想要发布的消息。
这段代码创建了一个MQTT客户端,连接到指定的代理,然后发布一条消息到特定的主题。如果你需要订阅主题接收消息,你可以添加订阅代码到这个基础上。
评论已关闭