| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package mqttclient
- import (
- "errors"
- mqtt "github.com/eclipse/paho.mqtt.golang"
- "log"
- "sync"
- )
- var CONFIG = MqttConnectConfig{
- Broker: "tcp://1.15.92.205:1883",
- User: "admin",
- Password: "houyaf1!",
- Certificate: "",
- PrivateKey: "",
- ClientId: "clientID",
- WillEnabled: false,
- WillTopic: "",
- WillPayload: "",
- WillQos: 0,
- Qos: 0,
- Retained: false,
- OnConnect: nil,
- OnConnectionLost: nil,
- }
- var ErrMqttInit = errors.New("MQTT初始化失败")
- var (
- once sync.Once
- mqttClient *MqttClient
- )
- func Instance() *MqttClient {
- once.Do(func() {
- mqttClient = NewMqttClient(CONFIG)
- })
- return mqttClient
- }
- func init() {
- if Instance() == nil {
- log.Fatal(ErrMqttInit)
- }
- }
- func Publish(topic string, payload []byte) error {
- return Instance().Publish(topic, payload)
- }
- func Subscribe(topics []string, onMessage mqtt.MessageHandler) error {
- return Instance().Subscribe(topics, onMessage)
- }
- func Unsubscribe(topics ...string) error {
- return Instance().Unsubscribe(topics...)
- }
|