mqtt-elements
mqtt-elements copied to clipboard
Injecting the mqtt "client" into more than 10 "<mqtt-connection>"s results in an EventEmitter error message
When creating one <mqtt-connection>
element and binding to its client property via <mqtt-connection client='{{client}}'>
and then injecting it into another mqtt-connection via <mqtt-connection client='[[client]]'>
results in the following error when injected into more than 10 different connection:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use
This is caused by https://github.com/mqttjs/mqtt-elements/blob/master/mqtt-connection.html#L311 as the element is adding itself as a listener to the client
client
.on("close", this._handelClose.bind(this))
.on("connect", this._handelConnected.bind(this))
.on("error", this._handelError.bind(this))
.on("message", this._handelMessage.bind(this))
.on("offline", this._handelOffline.bind(this))
.on("reconnect", this._handelReconnect.bind(this));
either the property client.setMaxListeners
could be exposed via the <mqtt-connection>
or increase client.maxListeners
each time mqtt-connection._clientChanged
is called.
The current documentation of the <mqtt-connection>
element is online http://mqttjs.github.io/mqtt-elements/bower_components/mqtt-elements/. To switch to the <mqtt-connection>
element select it at the top left dropdown.