mqtt

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2020 License: MIT Imports: 7 Imported by: 0

README

mqtt

Latest Tag

管理MQTT的连接,以及消息的订阅。

安装
go get -u gitee.com/cuckoopark/mqtt
使用

首先生成配置:

import "gitee.com/cuckoopark/mqtt"

conf := mqtt.Config{
	Host: "127.0.0.1",
	Port: 1883,
	ClientID: "client001",
}

然后注册需要订阅的消息,连接后会自动订阅:

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上:

opts := mqtt.GetClientOptions(conf)
opts.SetOnConnectHandler(...) // 设置自定义的连接后处理方法
opts.SetConnectionLostHandler(...) // 设置自定义的断开连接后处理方法
if err := mqtt.Init(opts); err != nil {
    log.Fatal("初始化失败")
} else {
    log.Println("初始化成功")
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetClient

func GetClient(opts *gomqtt.ClientOptions) (client gomqtt.Client, err error)

获取MQTT连接

func GetClientOptions

func GetClientOptions(conf *Config) *gomqtt.ClientOptions

获取MQTT连接配置项

func Init

func Init(opts *gomqtt.ClientOptions) (err error)

初始化监听器

func Publish

func Publish(topic string, payload interface{}, qos byte, retained bool) (err error)

通用发布消息接口

func Subscribe

func Subscribe(item SubscribeType)

注册订阅消息

Types

type Config

type Config struct {
	Broker   string // Broker地址,例如tcp://127.0.0.1:1883或ssl://127.0.0.1:8883. 如果配置ssl,则必须配置CAFile
	Username string // 用户名,可选
	Password string // 密码,可选
	CAFile   string //证书,单向认证只需要配置此文件即可,无需CertFile和KeyFile,可选
	CertFile string // 客户端Cert,可选
	KeyFile  string // 客户端Key,可选
	ClientID string // ClientID,可选
}

MQTT的配置信息格式

type SubscribeType

type SubscribeType struct {
	Topic      string
	Qos        byte
	Callback   gomqtt.MessageHandler
	RetryTimes int // 为0表示无限重试
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL