| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package main
- import (
- "lc/common/mqtt"
- "sync"
- )
- var _mqttMgronce sync.Once
- var _mqttMgrsingle *MQTTMgr
- func GetMQTTMgr() *MQTTMgr {
- _mqttMgronce.Do(func() {
- _mqttMgrsingle = _newMQTTMgr()
- })
- return _mqttMgrsingle
- }
- type MQTTMgr struct {
- FromCloud *MqttClient
- ToCloud *MqttClient
- }
- func _newMQTTMgr() *MQTTMgr {
- return &MQTTMgr{
- FromCloud: NewMqttClient(FromMQTTConfig.Mqtt_Server,
- FromMQTTConfig.Mqtt_Id,
- FromMQTTConfig.Mqtt_User,
- FromMQTTConfig.Mqtt_Password,
- 3000, &EmptyMqttOnline{}),
- ToCloud: NewMqttClient(ToMQTTConfig.Mqtt_Server,
- ToMQTTConfig.Mqtt_Id,
- ToMQTTConfig.Mqtt_User,
- ToMQTTConfig.Mqtt_Password,
- 3000, &EmptyMqttOnline{}),
- }
- }
- func (o *MQTTMgr) Subscribe(topic string, qos mqtt.QOS, handler mqtt.MessageHandler) {
- o.FromCloud.Handle(topic, handler)
- err := o.FromCloud.Subscribe(topic, qos)
- if err != nil {
- return
- }
- }
- func (o *MQTTMgr) UnSubscribe(topic string) {
- err := o.FromCloud.Unsubscribe(topic)
- if err != nil {
- return
- }
- }
- func (o *MQTTMgr) Publish(topic string, payload string, qos mqtt.QOS) error {
- return o.ToCloud.PublishString(topic, payload, qos)
- }
- func (o *MQTTMgr) HandlerData(m mqtt.Message) {
- topic := m.Topic()
- //newTopic := strings.ReplaceAll(topic, "000000", "100000")
- newTopic := topic
- err := o.Publish(newTopic, m.PayloadString(), m.QOS())
- if err != nil {
- return
- }
- }
|