| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package main
- import (
- "sync"
- "lc/common/mqtt"
- )
- var _mqttMgrOnce sync.Once
- var _mqttMgrSingle *MQTTMgr
- func GetMQTTMgr() *MQTTMgr {
- _mqttMgrOnce.Do(func() {
- _mqttMgrSingle = _newMQTTMgr()
- })
- return _mqttMgrSingle
- }
- type MQTTMgr struct {
- Cloud *mqtt.MqttClient
- }
- func _newMQTTMgr() *MQTTMgr {
- return &MQTTMgr{
- Cloud: mqtt.NewMqttClient(MQTTConfig.Mqtt_Server,
- MQTTConfig.Mqtt_Id,
- MQTTConfig.Mqtt_User,
- MQTTConfig.Mqtt_Password,
- 3000, &mqtt.EmptyMqttOnline{}),
- }
- }
- func (o *MQTTMgr) Subscribe(topic string, qos mqtt.QOS, handler mqtt.MessageHandler) {
- o.Cloud.Handle(topic, handler)
- err := o.Cloud.Subscribe(topic, qos)
- if err != nil {
- return
- }
- }
- func (o *MQTTMgr) UnSubscribe(topic string) {
- err := o.Cloud.Unsubscribe(topic)
- if err != nil {
- return
- }
- }
- func (o *MQTTMgr) Publish(topic string, payload string, qos mqtt.QOS) error {
- return o.Cloud.PublishString(topic, payload, qos)
- }
|