Documentation ¶
Index ¶
- Constants
- Variables
- func CallbackConnectionLostHandlerSet(handler mqtt.ConnectionLostHandler)
- func CallbackDefaultHandlerSet(handler mqtt.MessageHandler)
- func CallbackOnConnectHandlerSet(handler mqtt.OnConnectHandler)
- func CallbackReconnectingHandlerSet(handler mqtt.ReconnectHandler)
- func Connect(servers []MQTTxServer, defaultPublishHandler mqtt.MessageHandler, ...) error
- func Debug(enable bool)
- func NewTLSConfig(cafile, clientCertFile, clientKeyFile string) (*tls.Config, error)
- func SetUserDebug(f TraceFunc)
- func TraceDebug(format string, v ...interface{})
- func TraceError(format string, v ...interface{})
- func TraceInfo(format string, v ...interface{})
- type Cert
- type MQTTxClient
- func (m *MQTTxClient) Connect(defaultPublishHandler mqtt.MessageHandler, ...) error
- func (m *MQTTxClient) Disconnect() error
- func (m *MQTTxClient) GetCert() Cert
- func (m *MQTTxClient) GetClientID() string
- func (m *MQTTxClient) GetDomain() string
- func (m *MQTTxClient) GetIP() string
- func (m *MQTTxClient) GetPassword() string
- func (m *MQTTxClient) GetPort() string
- func (m *MQTTxClient) GetScheme() string
- func (m *MQTTxClient) GetUsername() string
- func (m *MQTTxClient) GetVendor() string
- func (m *MQTTxClient) Publish(topic string, qos byte, retained bool, payload interface{}) error
- func (m *MQTTxClient) SetCert(cert Cert)
- func (m *MQTTxClient) SetClientID(clientID string)
- func (m *MQTTxClient) SetDomain(domain string)
- func (m *MQTTxClient) SetIP(ip string)
- func (m *MQTTxClient) SetPassword(password string)
- func (m *MQTTxClient) SetPort(port string)
- func (m *MQTTxClient) SetScheme(scheme string)
- func (m *MQTTxClient) SetUsername(username string)
- func (m *MQTTxClient) SetVendor(vendor string)
- func (m MQTTxClient) String() string
- func (m *MQTTxClient) Subscribe(topic string, qos byte, callback mqtt.MessageHandler) error
- type MQTTxServer
- func (m *MQTTxServer) GetCert() Cert
- func (m *MQTTxServer) GetClientID() string
- func (m *MQTTxServer) GetDomain() string
- func (m *MQTTxServer) GetIP() string
- func (m *MQTTxServer) GetPassword() string
- func (m *MQTTxServer) GetPort() string
- func (m *MQTTxServer) GetScheme() string
- func (m *MQTTxServer) GetUsername() string
- func (m *MQTTxServer) GetVendor() string
- func (m *MQTTxServer) SetCert(cert Cert)
- func (m *MQTTxServer) SetClientID(clientID string)
- func (m *MQTTxServer) SetDomain(domain string)
- func (m *MQTTxServer) SetIP(ip string)
- func (m *MQTTxServer) SetPassword(password string)
- func (m *MQTTxServer) SetPort(port string)
- func (m *MQTTxServer) SetScheme(scheme string)
- func (m *MQTTxServer) SetUsername(username string)
- func (m *MQTTxServer) SetVendor(vendor string)
- func (m *MQTTxServer) String() string
- type TraceFunc
Constants ¶
const ( LevelEmergency = iota LevelAlert LevelCritical LevelError LevelWarning LevelNotice LevelInformational LevelDebug )
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 ¶
var MQTTxClientPools []*MQTTxClient // MQTT客户端连接
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服务器连接断开时回调
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时,使用此函数处理
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服务器建立连接时,订阅主题
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 NewTLSConfig ¶
NewTLSConfig 创建TLS配置
Types ¶
type Cert ¶
type Cert struct { Cafile string `json:"cafile"` // CA证书文件路径 ClientCertFile string `json:"client_cert_file"` // 客户端证书文件路径 ClientKeyFile string `json:"client_key_file"` // 客户端私钥文件路径 }
Cert 证书信息
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) GetClientID ¶
func (m *MQTTxClient) GetClientID() string
GetClientID 获取MQTT客户端ID
func (*MQTTxClient) GetPassword ¶
func (m *MQTTxClient) GetPassword() string
GetPassword 获取MQTT服务器密码
func (*MQTTxClient) GetUsername ¶
func (m *MQTTxClient) GetUsername() string
GetUsername 获取MQTT服务器用户名
func (*MQTTxClient) Publish ¶
func (m *MQTTxClient) Publish(topic string, qos byte, retained bool, payload interface{}) error
Publish 发布消息
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) SetPassword ¶
func (m *MQTTxClient) SetPassword(password string)
SetPassword 设置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) 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) GetClientID ¶
func (m *MQTTxServer) GetClientID() string
GetClientID 获取MQTT客户端ID
func (*MQTTxServer) GetPassword ¶
func (m *MQTTxServer) GetPassword() string
GetPassword 获取MQTT服务器密码
func (*MQTTxServer) GetUsername ¶
func (m *MQTTxServer) GetUsername() string
GetUsername 获取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) SetPassword ¶
func (m *MQTTxServer) SetPassword(password string)
SetPassword 设置MQTT服务器密码
func (*MQTTxServer) SetUsername ¶
func (m *MQTTxServer) SetUsername(username string)
SetUsername 设置MQTT服务器用户名
func (*MQTTxServer) SetVendor ¶
func (m *MQTTxServer) SetVendor(vendor string)
SetVendor 设置MQTT服务软件厂商