前言
Go语言实现MQTT
下载依赖
1
| go get github.com/eclipse/paho.mqtt.golang
|
创建连接
127.0.0.1
:指定MQTT服务器IP地址
1883
:指定MQTT服务器端口号
1 2 3 4 5 6
| var options = mqtt.NewClientOptions() options.AddBroker(fmt.Sprintf("tcp://127.0.0.1:1883")) var client = mqtt.NewClient(options) if token := client.Connect(); token.Wait() && token.Error() != nil { log.Panicln(token.Error()) }
|
指定用户名密码
<username>
:用户名
<password>:密码
1 2
| options.SetUsername("<username>") options.SetPassword("<passwordd>")
|
指定连接ID
1
| options.SetClientID("go-mqtt-client")
|
配置过滤器
1 2 3
| options.SetDefaultPublishHandler(func(client mqtt.Client, message mqtt.Message) { fmt.Println(message.Payload(), message.Topic()) })
|
连接建立完成事件
1 2 3
| options.OnConnect = func(client mqtt.Client) { fmt.Println("Connected") }
|
连接断开事件
1 2 3
| options.OnConnectionLost = func(client mqtt.Client, err error) { fmt.Printf("Connect Lost: %v", err) }
|
订阅者
topic/test
:订阅的主题
1 2
| var token = client.Subscribe("topic/test", 1, nil) token.Wait()
|
发布者
topic/test
:发布的主题
<str>
:发布的信息内容
1 2
| var token = client.Publish("topic/test", 0, false, string("<str>")) token.Wait()
|
完成
参考文献
哔哩哔哩——谷雨课堂