Resubscribe if not using persistent sessions
This commit is contained in:
parent
21c7378b61
commit
ce94e636bb
|
@ -46,6 +46,8 @@ type MQTTConsumer struct {
|
||||||
|
|
||||||
// keep the accumulator internally:
|
// keep the accumulator internally:
|
||||||
acc telegraf.Accumulator
|
acc telegraf.Accumulator
|
||||||
|
|
||||||
|
started bool false
|
||||||
}
|
}
|
||||||
|
|
||||||
var sampleConfig = `
|
var sampleConfig = `
|
||||||
|
@ -134,6 +136,7 @@ func (m *MQTTConsumer) Start(acc telegraf.Accumulator) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func onConnect(c *MQTT.Client) {
|
func onConnect(c *MQTT.Client) {
|
||||||
|
if (!m.PersistentSession || !m.started) {
|
||||||
topics := make(map[string]byte)
|
topics := make(map[string]byte)
|
||||||
for _, topic := range m.Topics {
|
for _, topic := range m.Topics {
|
||||||
topics[topic] = byte(m.QoS)
|
topics[topic] = byte(m.QoS)
|
||||||
|
@ -144,6 +147,8 @@ func (m *MQTTConsumer) Start(acc telegraf.Accumulator) error {
|
||||||
log.Printf("MQTT SUBSCRIBE ERROR\ntopics: %s\nerror: %s",
|
log.Printf("MQTT SUBSCRIBE ERROR\ntopics: %s\nerror: %s",
|
||||||
string(m.Topics), err.Error())
|
string(m.Topics), err.Error())
|
||||||
}
|
}
|
||||||
|
m.started = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// receiver() reads all incoming messages from the consumer, and parses them into
|
// receiver() reads all incoming messages from the consumer, and parses them into
|
||||||
// influxdb metric points.
|
// influxdb metric points.
|
||||||
|
@ -178,6 +183,7 @@ func (m *MQTTConsumer) Stop() {
|
||||||
defer m.Unlock()
|
defer m.Unlock()
|
||||||
close(m.done)
|
close(m.done)
|
||||||
m.client.Disconnect(200)
|
m.client.Disconnect(200)
|
||||||
|
m.started = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MQTTConsumer) Gather(acc telegraf.Accumulator) error {
|
func (m *MQTTConsumer) Gather(acc telegraf.Accumulator) error {
|
||||||
|
|
Loading…
Reference in New Issue