Add connection-state tracking as getter

f_influxdb-line-protocol
Ruakij 3 years ago
parent 4e2ffec656
commit d1cf1d8f7d

@ -24,12 +24,15 @@ class InfluxDbLineProtocolWriter extends net.Socket{
options.autoReconnectBackoffTime ??= 3000; options.autoReconnectBackoffTime ??= 3000;
this._options = options; this._options = options;
this._isConnected = false;
super.setKeepAlive(true, 5000); super.setKeepAlive(true, 5000);
// Register auto-Reconnect if enabled // Register auto-Reconnect if enabled
if(this._options.autoReconnect){ if(this._options.autoReconnect){
this.on("connect", () => { this.on("connect", () => {
logger.debug("Connection established!"); logger.debug("Connection established!");
this._isConnected = true;
if(this._autoReconnectTimeout) if(this._autoReconnectTimeout)
clearInterval(this._autoReconnectTimeout); clearInterval(this._autoReconnectTimeout);
@ -38,6 +41,8 @@ class InfluxDbLineProtocolWriter extends net.Socket{
this.on("error", (err) => { this.on("error", (err) => {
logger.error(err.code, "TCP ERROR"); logger.error(err.code, "TCP ERROR");
this._isConnected = false;
if(!this._autoReconnectTimeout) if(!this._autoReconnectTimeout)
this._autoReconnectTimeout = setInterval(() => { this._autoReconnectTimeout = setInterval(() => {
this.connect(); this.connect();
@ -53,6 +58,8 @@ class InfluxDbLineProtocolWriter extends net.Socket{
get host(){ return this._host; } get host(){ return this._host; }
get port(){ return this._port; } get port(){ return this._port; }
get isConnected(){ return this._isConnected; }
connect(){ connect(){
logger.debug("Connecting.."); logger.debug("Connecting..");
super.connect(this._port, this._host); super.connect(this._port, this._host);

Loading…
Cancel
Save