diff --git a/package-lock.json b/package-lock.json index d480159..4e5cc35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ulms/api-clients", - "version": "7.8.0", + "version": "7.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ulms/api-clients", - "version": "7.8.0", + "version": "7.8.1", "license": "MIT", "dependencies": { "axios": "1.6.2", diff --git a/package.json b/package.json index 4a554b3..7c5b906 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ulms/api-clients", - "version": "7.8.0", + "version": "7.8.1", "description": "JavaScript API clients for ULMS platform", "keywords": [], "homepage": "https://github.com/foxford/ulms-api-clients-js#readme", diff --git a/src/mqtt.js b/src/mqtt.js index c92de78..ac3aeea 100644 --- a/src/mqtt.js +++ b/src/mqtt.js @@ -129,6 +129,7 @@ class ReconnectingMQTTClient extends MQTTClient { this.reconnectLimit = reconnectLimit || 3 this.tokenProvider = tokenProvider this.tokenProviderPromise = undefined + this.trackEvent = undefined this.handleCloseEvent = this.handleCloseEvent.bind(this) this.handleConnectEvent = this.handleConnectEvent.bind(this) @@ -191,6 +192,14 @@ class ReconnectingMQTTClient extends MQTTClient { `[mqtt] Command '${cmd}', reasonCode ${reasonCode} (${mqttReasonCodeNameEnum[reasonCode]})`, ) + if (this.trackEvent) { + // eslint-disable-next-line unicorn/no-null + this.trackEvent('Debug', 'MQTT.Disconnect', 'v1', null, { + reason: mqttReasonCodeNameEnum[reasonCode], + reasonCode, + }) + } + // ignore 131 (MQTT broker limits) if (reasonCode === 131) { return @@ -262,6 +271,14 @@ class ReconnectingMQTTClient extends MQTTClient { this.disconnect() }) } + + /** + * Set event tracker + * @param {function} trackEvent + */ + setEventTracker(trackEvent) { + this.trackEvent = trackEvent + } } export { MQTTClient, ReconnectingMQTTClient, defaultOptions }