代码拉取完成,页面将自动刷新
package emqx
import (
mqtt "github.com/eclipse/paho.mqtt.golang"
"time"
)
var mq *MQTT
type PublishHook func()
type MQTT struct {
*Options
client mqtt.Client
publishHook PublishHook
}
func GetConnect() *MQTT {
return mq
}
func InitClient(opt *Options) *MQTT {
opts := mqtt.NewClientOptions().AddBroker("tcp://" + opt.Addr).SetClientID(opt.ID)
opts.SetAutoReconnect(true)
opts.SetConnectRetryInterval(time.Second * 5)
opts.SetUsername(opt.Username)
opts.SetPassword(opt.Password)
opts.SetKeepAlive(60 * time.Second)
opts.SetPingTimeout(1 * time.Second)
opts.OnConnect = mqtt.OnConnectHandler(opt.ConnectHandler)
opts.OnConnectionLost = mqtt.ConnectionLostHandler(opt.ConnectLostHandler)
mq = &MQTT{
Options: opt,
client: mqtt.NewClient(opts),
}
return mq
}
func (m *MQTT) Connect() error {
if token := m.client.Connect(); token.Wait() && token.Error() != nil {
m.Logger.Error(token.Error())
}
return nil
}
func (m *MQTT) Publish(topic string, data []byte) error {
if token := m.client.Publish(topic, 1, false, data); token != nil {
return token.Error()
}
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。