Removed check node up from WS #3587

This commit is contained in:
Nicolas Gotchac 2016-11-23 18:20:18 +01:00
parent bb6fe16478
commit 0c3d87f0d3
2 changed files with 37 additions and 43 deletions

View File

@ -101,16 +101,6 @@ export default class Ws extends JsonRpcBase {
}
}
_checkNodeUp () {
return fetch('/', { method: 'HEAD' })
.then((r) => {
return r.status === 200;
}, () => {
return false;
})
.catch(() => false);
}
_onOpen = (event) => {
console.log('ws:onOpen', event);
this._connected = true;
@ -127,36 +117,25 @@ export default class Ws extends JsonRpcBase {
this._connected = false;
this._connecting = false;
this._checkNodeUp()
.then((up) => {
// If the connection has been closed and the node
// is up, it means we have a wrong token
// Event code 1006 for WS means there is an error
// (not just closed by server)
if (up && event.code === 1006) {
event.status = 403;
}
this._lastError = event;
this._lastError = event;
if (this._autoConnect) {
const timeout = this.retryTimeout;
if (this._autoConnect) {
const timeout = this.retryTimeout;
const time = timeout < 1000
? Math.round(timeout) + 'ms'
: (Math.round(timeout / 10) / 100) + 's';
const time = timeout < 1000
? Math.round(timeout) + 'ms'
: (Math.round(timeout / 10) / 100) + 's';
console.log('ws:onClose', `trying again in ${time}...`);
console.log('ws:onClose', `trying again in ${time}...`);
this._reconnectTimeoutId = setTimeout(() => {
this._connect();
}, timeout);
this._reconnectTimeoutId = setTimeout(() => {
this._connect();
}, timeout);
return;
}
return;
}
console.log('ws:onClose', event);
});
console.log('ws:onClose', event);
}
_onError = (event) => {

View File

@ -41,6 +41,15 @@ export default class SecureApi extends Api {
console.log('SecureApi:setToken', this._transport.token);
}
_checkNodeUp () {
return fetch('/', { method: 'HEAD' })
.then(
(r) => r.status === 200,
() => false
)
.catch(() => false);
}
_followConnection = () => {
const nextTick = () => {
if (this._followConnectionTimeoutId) {
@ -65,17 +74,23 @@ export default class SecureApi extends Api {
if (isConnected) {
return this.connectSuccess();
} else if (lastError) {
const nextToken = this._tokensToTry[0] || 'initial';
const nextState = nextToken !== 'initial' ? 0 : 1;
return this
._checkNodeUp()
.then((isNodeUp) => {
const nextToken = this._tokensToTry[0] || 'initial';
const nextState = nextToken !== 'initial' ? 0 : 1;
// If previous token was wrong, delete it
if (lastError.status === 403) {
this._tokensToTry = this._tokensToTry.slice(1);
}
// If previous token was wrong (error while node up), delete it
if (isNodeUp) {
this._tokensToTry = this._tokensToTry.slice(1);
}
if (nextToken !== this._transport.token) {
this.updateToken(nextToken, nextState);
}
if (nextToken !== this._transport.token) {
this.updateToken(nextToken, nextState);
}
nextTick();
});
}
break;