From 0c45812c69d5c059aee47adbd222abaed25231ca Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Tue, 22 Jun 2021 17:03:06 +0200 Subject: [PATCH] Fix frontend not working when MQTT broker is offline. https://github.com/nurikk/z2m-frontend/issues/589 --- lib/extension/frontend.js | 6 +++--- lib/mqtt.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/extension/frontend.js b/lib/extension/frontend.js index 1c22ab58..dc150fed 100644 --- a/lib/extension/frontend.js +++ b/lib/extension/frontend.js @@ -19,8 +19,8 @@ class Frontend extends Extension { this.onRequest = this.onRequest.bind(this); this.onUpgrade = this.onUpgrade.bind(this); this.mqttBaseTopic = settings.get().mqtt.base_topic; - this.onMQTTPublishedMessage = this.onMQTTPublishedMessage.bind(this); - this.mqtt.on('publishedMessage', this.onMQTTPublishedMessage); + this.onMQTTPublishMessage = this.onMQTTPublishMessage.bind(this); + this.mqtt.on('publishMessage', this.onMQTTPublishMessage); this.onWebSocketConnection = this.onWebSocketConnection.bind(this); this.server = http.createServer(this.onRequest); this.server.on('upgrade', this.onUpgrade); @@ -106,7 +106,7 @@ class Frontend extends Extension { } } - onMQTTPublishedMessage(data) { + onMQTTPublishMessage(data) { let {topic, payload, options} = data; if (topic.startsWith(`${this.mqttBaseTopic}/`)) { // Send topic without base_topic diff --git a/lib/mqtt.js b/lib/mqtt.js index 22706698..31d01cd0 100644 --- a/lib/mqtt.js +++ b/lib/mqtt.js @@ -116,6 +116,8 @@ class MQTT extends events.EventEmitter { this.publishedTopics.add(topic); } + this.emit('publishMessage', {topic, payload, options}); + if (!this.isConnected()) { if (!skipLog) { logger.error(`Not connected to MQTT server!`); @@ -135,7 +137,6 @@ class MQTT extends events.EventEmitter { return new Promise((resolve) => { this.client.publish(topic, payload, actualOptions, () => { - this.emit('publishedMessage', {topic, payload, options}); resolve(); }); });