mqttjs / mqtt-elements

Polymer elements for MQTT
http://mqttjs.github.io/mqtt-elements/
MIT License
27 stars 6 forks source link

Injecting the mqtt "client" into more than 10 "<mqtt-connection>"s results in an EventEmitter error message #12

Open sandro-k opened 9 years ago

sandro-k commented 9 years ago

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.

sandro-k commented 9 years ago

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.