mqttmgr_hl.go 972 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package main
  2. import (
  3. "sync"
  4. "lc/common/mqtt"
  5. )
  6. //海蓝mqtt连接
  7. var _hlMqttMgrOnce sync.Once
  8. var _hlMqttMgrSingle *HlMqttMgr
  9. func GetHlMqttMgr() *HlMqttMgr {
  10. _hlMqttMgrOnce.Do(func() {
  11. _hlMqttMgrSingle = _newHlMqttMgr()
  12. })
  13. return _hlMqttMgrSingle
  14. }
  15. type HlMqttMgr struct {
  16. Cloud *MqttClient
  17. }
  18. func _newHlMqttMgr() *HlMqttMgr {
  19. return &HlMqttMgr{
  20. Cloud: NewMqttClient(MqttconfigHl.Mqtt_Server,
  21. MqttconfigHl.Mqtt_Id,
  22. MqttconfigHl.Mqtt_User,
  23. MqttconfigHl.Mqtt_Password,
  24. 3000, &EmptyMqttOnline{}),
  25. }
  26. }
  27. func (o *HlMqttMgr) Subscribe(topic string, qos mqtt.QOS, handler mqtt.MessageHandler) {
  28. o.Cloud.Handle(topic, handler)
  29. err := o.Cloud.Subscribe(topic, qos)
  30. if err != nil {
  31. return
  32. }
  33. }
  34. func (o *HlMqttMgr) UnSubscribe(topic string) {
  35. err := o.Cloud.Unsubscribe(topic)
  36. if err != nil {
  37. return
  38. }
  39. }
  40. func (o *HlMqttMgr) Publish(topic string, payload string, qos mqtt.QOS) error {
  41. return o.Cloud.PublishString(topic, payload, qos)
  42. }