Auto re-connect when connection is closed #1546
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This attempts to fix #1354 by automatically reconnecting every second.
Manually tested with the following steps:
Start up a proxy script that forwards port 9999 to 8546 (Originally by )
Run the following
node
> const Web3 = require('web3');
> const web3 = new Web3('ws://localhost:9999')
> web3.eth.getBlock('latest').then(console.log)
This should print out the latest block. Now kill the above proxy script. Re-do:
> web3.eth.getBlock('latest').then(console.log)
This should print
> (node:48280) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: connection not open
Now start up the same proxy again and repeat
> web3.eth.getBlock('latest').then(console.log)
This will print out the latest block again.
Unfortunately, it doesn't seem easy to add a unit test case for this.