This commit is contained in:
Nicolas Duhamel 2022-10-28 19:38:23 +02:00
parent 6837a07beb
commit 1fa6e82ac1
4 changed files with 15 additions and 13 deletions

View File

@ -160,7 +160,7 @@ func (app *App) onSetStateMessage(ctx context.Context, msg mqttpaho.Message) {
Str("action", "onSetStateMessage"). Str("action", "onSetStateMessage").
Str("device", device_name). Str("device", device_name).
Logger() Logger()
ctx = logger.WithContext(ctx) // ctx = logger.WithContext(ctx)
var state device.DeviceState var state device.DeviceState
if err := json.Unmarshal(msg.Payload(), &state); err != nil { if err := json.Unmarshal(msg.Payload(), &state); err != nil {

View File

@ -1,10 +1,11 @@
package mqtt package mqtt
import ( import (
"github.com/google/uuid"
"os" "os"
"strings" "strings"
"time" "time"
"github.com/google/uuid"
) )
type Config struct { type Config struct {

View File

@ -26,9 +26,9 @@ func newConnection(conf *Config) *connection {
opts.SetAutoReconnect(conn.conf.AutoReconnect) opts.SetAutoReconnect(conn.conf.AutoReconnect)
opts.SetKeepAlive(conn.conf.KeepAlive) opts.SetKeepAlive(conn.conf.KeepAlive)
opts.SetMessageChannelDepth(conn.conf.MsgChanDept) opts.SetMessageChannelDepth(conn.conf.MsgChanDept)
if conn.conf.AutoReconnect { if conn.conf.AutoReconnect {
opts.SetResumeSubs(true) opts.SetResumeSubs(true)
} }
conn.client = mqttLib.NewClient(opts) conn.client = mqttLib.NewClient(opts)

View File

@ -2,6 +2,7 @@ package mqtt
import ( import (
"context" "context"
mqtt "github.com/eclipse/paho.mqtt.golang" mqtt "github.com/eclipse/paho.mqtt.golang"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
@ -29,7 +30,7 @@ type frame struct {
topic string topic string
qos int qos int
payload []byte payload []byte
retain bool retain bool
} }
func NewHub(conf *Config) *Hub { func NewHub(conf *Config) *Hub {
@ -73,13 +74,13 @@ func (hub *Hub) Subscribe(ctx context.Context, topic string, qos int) *Subscribe
close(sub.OnError) close(sub.OnError)
}() }()
if token := hub.conn.subscribe(topic, byte(qos), func(mqttClient mqtt.Client, message mqtt.Message) { if token := hub.conn.subscribe(topic, byte(qos), func(mqttClient mqtt.Client, message mqtt.Message) {
sub.OnMessage <- message sub.OnMessage <- message
}); token.Wait() && token.Error() != nil { }); token.Wait() && token.Error() != nil {
sub.OnError <- token.Error() sub.OnError <- token.Error()
} }
<-ctx.Done() <-ctx.Done()
}(ctx, sub) }(ctx, sub)
return sub return sub
@ -119,6 +120,6 @@ func (pub *Publisher) Publish(topic string, qos int, message []byte, retain bool
topic: topic, topic: topic,
qos: qos, qos: qos,
payload: message, payload: message,
retain: retain, retain: retain,
} }
} }