12 Star 59 Fork 17

北京小程科技有限公司 / MQTT

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

mqtt

管理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("初始化成功")
}

Comments ( 0 )

Sign in for post a comment

About

MQTT封装库,自动订阅,事件分发。 expand collapse
Go
MIT
Cancel

Releases

No release

MQTT

Contributors

All

Activities

load more
can not load any more
Go
1
https://gitee.com/xiaochengtech/mqtt.git
git@gitee.com:xiaochengtech/mqtt.git
xiaochengtech
mqtt
MQTT
master

Search