Determine real-time HTTP connected status (#3335)

* Determine real-time HTTP connected status

* Update failing tests, no polluting polling
This commit is contained in:
Jaco Greeff
2016-11-11 09:01:28 +01:00
committed by Gav Wood
parent 7cc88b175f
commit c7b99cd7e6
11 changed files with 27 additions and 11 deletions

View File

@@ -19,11 +19,14 @@ import JsonRpcBase from '../jsonRpcBase';
/* global fetch */
export default class Http extends JsonRpcBase {
constructor (url) {
constructor (url, connectTimeout = 1000) {
super();
this._connected = true;
this._url = url;
this._connectTimeout = connectTimeout;
this._pollConnection();
}
_encodeOptions (method, params) {
@@ -77,4 +80,17 @@ export default class Http extends JsonRpcBase {
return response.result;
});
}
_pollConnection = () => {
if (this._connectTimeout <= 0) {
return;
}
const nextTimeout = () => setTimeout(this._pollConnection, this._connectTimeout);
this
.execute('net_listening')
.then(nextTimeout)
.catch(nextTimeout);
}
}