Determine real-time HTTP connected status (#3335)
* Determine real-time HTTP connected status * Update failing tests, no polluting polling
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user