mqttx

package module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

README

mqttx

mqtt client for golang

Documentation

Index

Constants

View Source
const (
	LevelEmergency = iota
	LevelAlert
	LevelCritical
	LevelError
	LevelWarning
	LevelNotice
	LevelInformational
	LevelDebug
)
View Source
const (
	MQTT_BROKER_MOSQUITTO = "mosquitto"
	MQTT_BROKER_EMQX      = "emqx"
	MQTT_BROKER_MOSCA     = "mosca"
	MQTT_BROKER_VERNEMQ   = "vernemq"
	MQTT_BROKER_RABBITMQ  = "rabbitmq"
	MQTT_BROKER_ALIYUN    = "aliyun"
	MQTT_BROKER_QCLOUD    = "qcloud"
	MQTT_BROKER_BAIDU     = "baidu"
	MQTT_BROKER_JD        = "jd"
)

MQTT服务软件厂商 mosquitto/emqx/mosca/vernemq/rabbitmq/aliyun/qcloud/baidu/jd/...

Variables

View Source
var MQTTxClientPools []*MQTTxClient // MQTT客户端连接
View Source
var MQTTxHandlerConnectionLost mqtt.ConnectionLostHandler = func(client mqtt.Client, err error) {
	cliOpts := client.OptionsReader()

	TraceError("mqtt - client(%v) connection lost, error: %s", cliOpts.ClientID(), err)

	if callbackConnectionLostHandler != nil {
		callbackConnectionLostHandler(client, err)
	}
}

MQTTxHandlerConnectionLost 在与MQTT服务器连接断开时回调

View Source
var MQTTxHandlerDefault mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
	TraceInfo("mqtt topic - default: %s, message: %X", msg.Topic(), msg.Payload())

	if callbackDefaultHandler != nil {
		callbackDefaultHandler(client, msg)
	}
}

DefaultMQTTxHandler 默认的mqtt消息处理函数, 没有匹配的topic时,使用此函数处理

View Source
var MQTTxHandlerOnConnect mqtt.OnConnectHandler = func(client mqtt.Client) {
	cliOpts := client.OptionsReader()

	TraceInfo("mqtt - client(%v) connected", cliOpts.ClientID())

	if callbackOnConnectHandler != nil {
		callbackOnConnectHandler(client)
	}
}

MQTTxHandlerOnConnect 在与MQTT服务器建立连接时,订阅主题

View Source
var MQTTxHandlerReconnecting mqtt.ReconnectHandler = func(client mqtt.Client, clientOptions *mqtt.ClientOptions) {
	cliOpts := client.OptionsReader()

	TraceInfo("mqtt - client(%v) reconnecting", cliOpts.ClientID())

	if callbackReconnectingHandler != nil {
		callbackReconnectingHandler(client, clientOptions)
	}
}

MQTTxHandlerReconnecting 在与MQTT服务器重连时回调

Functions

func CallbackConnectionLostHandlerSet

func CallbackConnectionLostHandlerSet(handler mqtt.ConnectionLostHandler)

CallbackConnectionLostHandlerSet set callbackConnectionLostHandler

func CallbackDefaultHandlerSet

func CallbackDefaultHandlerSet(handler mqtt.MessageHandler)

CallbackDefaultHandlerSet set callbackDefaultHandler

func CallbackOnConnectHandlerSet

func CallbackOnConnectHandlerSet(handler mqtt.OnConnectHandler)

CallbackOnConnectHandlerSet set callbackOnConnectHandler

func CallbackReconnectingHandlerSet

func CallbackReconnectingHandlerSet(handler mqtt.ReconnectHandler)

CallbackReconnectingHandlerSet set callbackReconnectingHandler

func Connect

func Connect(servers []MQTTxServer, defaultPublishHandler mqtt.MessageHandler, onConnectHandler mqtt.OnConnectHandler, connectionLostHandler mqtt.ConnectionLostHandler, reconnectingHandler mqtt.ReconnectHandler) error

Connect 初始化MQTT服务

func Debug

func Debug(enable bool)

Debug Enable debug

func NewTLSConfig

func NewTLSConfig(cafile, clientCertFile, clientKeyFile string) (*tls.Config, error)

NewTLSConfig 创建TLS配置

func SetUserDebug

func SetUserDebug(f TraceFunc)

SetUserDebug 配置其他日志输出

func TraceDebug

func TraceDebug(format string, v ...interface{})

TraceDebug Debug调试信息日志

func TraceError

func TraceError(format string, v ...interface{})

TraceError 错误日志

func TraceInfo

func TraceInfo(format string, v ...interface{})

TraceInfo 调试信息日志

Types

type Cert

type Cert struct {
	Cafile         string `json:"cafile"`           // CA证书文件路径
	ClientCertFile string `json:"client_cert_file"` // 客户端证书文件路径
	ClientKeyFile  string `json:"client_key_file"`  // 客户端私钥文件路径
}

Cert 证书信息

func (*Cert) IsValid

func (c *Cert) IsValid() bool

IsValid 是否有效

func (Cert) String

func (c Cert) String() string

String 序列化成字符串

type MQTTxClient

type MQTTxClient struct {
	Vendor   string `json:"vendor"`    // MQTT服务软件厂商
	Scheme   string `json:"scheme"`    // MQTT协议 tcp/tls(ssl)/ws
	Domain   string `json:"domain"`    // MQTT服务器地址
	IP       string `json:"ip"`        // MQTT服务器IP
	Port     string `json:"port"`      // MQTT服务器端口
	Cert     Cert   `json:"cert"`      // MQTT证书信息
	ClientID string `json:"client_id"` // MQTT客户端ID, GID_GW101@@@deviceid
	Username string `json:"username"`  // MQTT服务器用户名
	Password string `json:"password"`  // MQTT服务器密码

	// MQTT连接相关
	Opts   *mqtt.ClientOptions `json:"-"` // MQTT连接参数
	Client mqtt.Client         `json:"-"` // MQTT客户端连接
}

MQTTxClient MQTT客户端信息

func NewMQTTxClient

func NewMQTTxClient(server MQTTxServer) (*MQTTxClient, error)

NewMQTTxClient 根据服务器的信息,创建MQTT客户端

func (*MQTTxClient) Connect

func (m *MQTTxClient) Connect(defaultPublishHandler mqtt.MessageHandler, onConnectHandler mqtt.OnConnectHandler, connectionLostHandler mqtt.ConnectionLostHandler, reconnectingHandler mqtt.ReconnectHandler) error

Connect 连接MQTT服务器

func (*MQTTxClient) Disconnect

func (m *MQTTxClient) Disconnect() error

Disconnect 断开MQTT服务器

func (*MQTTxClient) GetCert

func (m *MQTTxClient) GetCert() Cert

GetCert 获取MQTT证书信息

func (*MQTTxClient) GetClientID

func (m *MQTTxClient) GetClientID() string

GetClientID 获取MQTT客户端ID

func (*MQTTxClient) GetDomain

func (m *MQTTxClient) GetDomain() string

GetDomain 获取MQTT服务器地址

func (*MQTTxClient) GetIP

func (m *MQTTxClient) GetIP() string

GetIP 获取MQTT服务器IP

func (*MQTTxClient) GetPassword

func (m *MQTTxClient) GetPassword() string

GetPassword 获取MQTT服务器密码

func (*MQTTxClient) GetPort

func (m *MQTTxClient) GetPort() string

GetPort 获取MQTT服务器端口

func (*MQTTxClient) GetScheme

func (m *MQTTxClient) GetScheme() string

GetScheme 获取MQTT协议

func (*MQTTxClient) GetUsername

func (m *MQTTxClient) GetUsername() string

GetUsername 获取MQTT服务器用户名

func (*MQTTxClient) GetVendor

func (m *MQTTxClient) GetVendor() string

GetVendor 获取MQTT服务软件厂商

func (*MQTTxClient) Publish

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

Publish 发布消息

func (*MQTTxClient) SetCert

func (m *MQTTxClient) SetCert(cert Cert)

SetCert 设置MQTT证书信息

func (*MQTTxClient) SetClientID

func (m *MQTTxClient) SetClientID(clientID string)

SetClientID 设置MQTT客户端ID

func (*MQTTxClient) SetDomain

func (m *MQTTxClient) SetDomain(domain string)

SetDomain 设置MQTT服务器地址

func (*MQTTxClient) SetIP

func (m *MQTTxClient) SetIP(ip string)

SetIP 设置MQTT服务器IP

func (*MQTTxClient) SetPassword

func (m *MQTTxClient) SetPassword(password string)

SetPassword 设置MQTT服务器密码

func (*MQTTxClient) SetPort

func (m *MQTTxClient) SetPort(port string)

SetPort 设置MQTT服务器端口

func (*MQTTxClient) SetScheme

func (m *MQTTxClient) SetScheme(scheme string)

SetScheme 设置MQTT协议

func (*MQTTxClient) SetUsername

func (m *MQTTxClient) SetUsername(username string)

SetUsername 设置MQTT服务器用户名

func (*MQTTxClient) SetVendor

func (m *MQTTxClient) SetVendor(vendor string)

SetVendor 设置MQTT服务软件厂商

func (MQTTxClient) String

func (m MQTTxClient) String() string

String 序列化成字符串

func (*MQTTxClient) Subscribe

func (m *MQTTxClient) Subscribe(topic string, qos byte, callback mqtt.MessageHandler) error

Subscribe 订阅消息

type MQTTxServer

type MQTTxServer struct {
	Vendor   string `json:"vendor"`    // MQTT服务软件厂商
	Scheme   string `json:"scheme"`    // MQTT协议 tcp/tls(ssl)/ws
	Domain   string `json:"domain"`    // MQTT服务器地址
	IP       string `json:"ip"`        // MQTT服务器IP
	Port     string `json:"port"`      // MQTT服务器端口
	Cert     Cert   `json:"cert"`      // MQTT证书信息
	ClientID string `json:"client_id"` // MQTT客户端ID, GID_GW101@@@deviceid
	Username string `json:"username"`  // MQTT服务器用户名
	Password string `json:"password"`  // MQTT服务器密码
}

MQTTxServer MQTT服务器信息

func (*MQTTxServer) GetCert

func (m *MQTTxServer) GetCert() Cert

GetCert 获取MQTT证书信息

func (*MQTTxServer) GetClientID

func (m *MQTTxServer) GetClientID() string

GetClientID 获取MQTT客户端ID

func (*MQTTxServer) GetDomain

func (m *MQTTxServer) GetDomain() string

GetDomain 获取MQTT服务器地址

func (*MQTTxServer) GetIP

func (m *MQTTxServer) GetIP() string

GetIP 获取MQTT服务器IP

func (*MQTTxServer) GetPassword

func (m *MQTTxServer) GetPassword() string

GetPassword 获取MQTT服务器密码

func (*MQTTxServer) GetPort

func (m *MQTTxServer) GetPort() string

GetPort 获取MQTT服务器端口

func (*MQTTxServer) GetScheme

func (m *MQTTxServer) GetScheme() string

GetScheme 获取MQTT协议

func (*MQTTxServer) GetUsername

func (m *MQTTxServer) GetUsername() string

GetUsername 获取MQTT服务器用户名

func (*MQTTxServer) GetVendor

func (m *MQTTxServer) GetVendor() string

GetVendor 获取MQTT服务软件厂商

func (*MQTTxServer) SetCert

func (m *MQTTxServer) SetCert(cert Cert)

SetCert 设置MQTT证书信息

func (*MQTTxServer) SetClientID

func (m *MQTTxServer) SetClientID(clientID string)

SetClientID 设置MQTT客户端ID

func (*MQTTxServer) SetDomain

func (m *MQTTxServer) SetDomain(domain string)

SetDomain 设置MQTT服务器地址

func (*MQTTxServer) SetIP

func (m *MQTTxServer) SetIP(ip string)

SetIP 设置MQTT服务器IP

func (*MQTTxServer) SetPassword

func (m *MQTTxServer) SetPassword(password string)

SetPassword 设置MQTT服务器密码

func (*MQTTxServer) SetPort

func (m *MQTTxServer) SetPort(port string)

SetPort 设置MQTT服务器端口

func (*MQTTxServer) SetScheme

func (m *MQTTxServer) SetScheme(scheme string)

SetScheme 设置MQTT协议

func (*MQTTxServer) SetUsername

func (m *MQTTxServer) SetUsername(username string)

SetUsername 设置MQTT服务器用户名

func (*MQTTxServer) SetVendor

func (m *MQTTxServer) SetVendor(vendor string)

SetVendor 设置MQTT服务软件厂商

func (*MQTTxServer) String

func (m *MQTTxServer) String() string

String 序列化成字符串

type TraceFunc

type TraceFunc func(format string, level int, v ...interface{})
var UserTrace TraceFunc = nil

Jump to

Keyboard shortcuts

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