代码拉取完成,页面将自动刷新
管理MQTT的连接,以及消息的订阅。
首先生成配置:
import "gitee.com/xiaochengtech/mqtt"
conf := mqtt.Config{
Broker: "tcp://127.0.0.1:1883",
ClientID: "client001",
}
然后生成一个全局的实例,注册需要订阅的消息,连接后会自动订阅:
import (
"gitee.com/xiaochengtech/mqtt"
gomqtt "github.com/eclipse/paho.mqtt.golang"
)
var instance = mqtt.Client{}
func init() {
instance.Subscribe(mqtt.SubscribeType{ // 消息订阅
Topic: "topic/test",
Qos: byte(0),
Callback: TestMessageHandler,
RetryTimes: 0,
})
}
// TestMessageHandler函数定义格式如下
func TestMessageHandler(client gomqtt.Client, message gomqtt.Message) {
// ...
}
其中RetryTimes
表示订阅失败后的重试次数,如果为0,则表示一直重试下去。
最后使用初始化方法连接到MQTT的Broker上:
opts := mqtt.GetClientOptions(&conf)
opts.Username = "username"
opts.Password = "password"
opts.SetWill(topic, "client_dead", 0, true)
opts.SetKeepAlive(10 * time.Second)
opts.SetPingTimeout(5 * time.Second)
// ...
opts.SetOnConnectHandler(...) // 设置自定义的连接后处理方法
opts.SetConnectionLostHandler(...) // 设置自定义的断开连接后处理方法
if err := instance.Init(opts); err != nil {
log.Fatal("初始化失败")
} else {
log.Println("初始化成功")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。