# MQTT **Repository Path**: forgo/mqtt ## Basic Information - **Project Name**: MQTT - **Description**: MQTT封装库,自动订阅,事件分发。 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 22 - **Created**: 2020-02-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mqtt [![Latest Tag](https://img.shields.io/badge/tag-v1.0.0-blue.svg)](https://gitee.com/cuckoopark/mqtt/releases) 管理MQTT的连接,以及消息的订阅。 ### 安装 ```shell go get -u gitee.com/cuckoopark/mqtt ``` ### 使用 首先生成配置: ```go import "gitee.com/cuckoopark/mqtt" conf := mqtt.Config{ Host: "127.0.0.1", Port: 1883, ClientID: "client001", } ``` 然后注册需要订阅的消息,连接后会自动订阅: ```go import ( "gitee.com/cuckoopark/mqtt" gomqtt "github.com/eclipse/paho.mqtt.golang" ) mqtt.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上: ```go opts := mqtt.GetClientOptions(conf) opts.SetOnConnectHandler(...) // 设置自定义的连接后处理方法 opts.SetConnectionLostHandler(...) // 设置自定义的断开连接后处理方法 if err := mqtt.Init(opts); err != nil { log.Fatal("初始化失败") } else { log.Println("初始化成功") } ```