Open olmedocr opened 7 years ago
has there been any change on this? currently when an internet loss happens the script has no idea to reconnect.
thanks
Is there any update on this?
on blynk.js coment line 592: this.emit('error', err.code?err.code:'ERROR');
Blynk.prototype.error = function(err) {
var self = this;
//if we throw error and user doesn't handle it, app crashes. is it worth it?
//this.emit('error', err.code?err.code:'ERROR'); //comment and nodejs not crash on connection error
console.error('Error', err.code);
//starting reconnect procedure if not already in connecting loop
if(!self.timerConn) {
setTimeout(function () {self.connect()}, 5000);
}
};
Nodejs not crash on connection error, and try to reconnect!!
It's not working very well. It continuously try to reconnect and disconnect in an infinite loop.
If the blynk server is unavailable for some reason, you can observe the error message and choose to disconnect if you wish. The intent of the loop is to keep trying to connect, for example, in the case of temporary network drop out.
What I meant for loop, is that when it disconnects, it tries to reconnect but somehow it also try to disconnect in a continuous loop where it reconnects and immediately disconnect and so on forever. I tried to debug a bit but I wasn't able to find the failure point. To reproduce just disconnect internet and reconnect internet.
I'm currently on local blynk server.
I pulled the network cable to blynk server then looked at my hw client console and see no change. Also on UI, no change. (Likely tcp maintaining session during timeout period)
Reconnect network cable then touched the UI connection status icon. A warning message was momentarily displayed (too fast for me to read and remember). Back on my hw client console, I now see two error messages: one is ECONNRESET, the other is 'undefined'. I also received two 'connect' events but no 'disconnect' event.
My app is working but I now have three connect handlers running because I expected to receive disconnect before another connect. This is a blynk library bug but I can easily work around it by using a 'once' connect handler.
In short, I didn't see the same problem you are experiencing. Did you pull the network connection from the host running your hw client? I can't easily do that since mine is wireless.
I pulled the network cable from the host running this library (my "hardware").
Aren't the three connect handlers making some mess, like trying to disconnect and so on?
Ok, just ran the same experiment on my host running blynk-library-js. Got these messages:
Disconnect blynk 2018.11.03 1:47 pm - warn: Received disconnect from Blynk server REARMING DISCONNECT Connecting to TCP: 10.0.100.7 8080 Connected Authorized
Which seems to work as expected. What version of the blynk library are you using - installed from npm or git repo?
From repo, latest commit (but it was the same 10-15 commits ago). I'm using public server.
process.on('uncaughtException', err => {
console.log(err)
})
Hi, is there a way in the js library of handling a disconnect from the blynk server or checking the connection status in order to retry the connection if failed? Thanks