123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package mqtt
- import (
- "server/global"
- "sync"
- )
- var _once sync.Once
- var _mgr *Mgr
- func GetMQTTMgr() *Mgr {
- _once.Do(func() {
- _mgr = _newMQTTMgr()
- })
- return _mgr
- }
- type Mgr struct {
- Cloud *MClient
- }
- func _newMQTTMgr() *Mgr {
- cfg := global.GVA_CONFIG.Mqtt
- return &Mgr{
- Cloud: NewMqttClient(cfg.Server,
- cfg.Id,
- cfg.User,
- cfg.Password,
- 3000, &EmptyMqttOnline{}),
- }
- }
- func (o *Mgr) Subscribe(topic string, qos QOS, handler MessageHandler) {
- o.Cloud.Handle(topic, handler)
- err := o.Cloud.Subscribe(topic, qos)
- if err != nil {
- return
- }
- }
- func (o *Mgr) UnSubscribe(topic string) {
- err := o.Cloud.Unsubscribe(topic)
- if err != nil {
- return
- }
- }
- func (o *Mgr) Publish(topic string, payload interface{}, qos QOS) error {
- return o.Cloud.Publish(topic, payload, qos)
- }
|