WebSocket-Node
WebSocket-Node copied to clipboard
add config.keepaliveForce
Why?
If you have ever worked with web3 subscriptions, in particular with infura's node, you will stop receiving messages after a few minutes of inactivity.
When a subscription its established for example a subscription to logs, there would be only incomming messages from the node.
The package currently doesn't ping if messages are being received, so after a few minutes infura will close the connection because it has not received any ping (keepalive)
I propose adding this option keepaliveForce, that would force the keepalive to be sent
Here you can see workarounds that need to be done, but could be solved if this option its enabled
https://medium.com/@pauloostenrijk/infura-drops-your-websocket-connections-after-a-while-and-here-is-a-fix-for-it-3413ca8253b
I fail to understand what changes in this PR fix the problem you mention in the PR description. So:
- Can you please detail it a bit more?
- Such a new option must be documented in the docs folder.
I fail to understand what changes in this PR fix the problem you mention in the PR description. So:
- Can you please detail it a bit more?
- Such a new option must be documented in the docs folder.
Hey! Let me explain a lit better.
-
Keep in mind this problem happens with a Client connection to a server, and this servers expects pings every 60 seconds (or any other interval) to not close the conneciton, if the client does not send a ping, the server will close the connection, Current implementation only sends ping (keepalive) if there is no data being recieved on the client, so in the example above when you are subscribed to messages and not sending any messages, you as the client will have incomming messages and the keepalive timer will always reset, if the server expects a ping / keepalive to not close the connection no pings will be sent to the server, so connection would be closed. if you set keepaliveForce to true, it will force ping to be sent to the server even if new messages are incomming so the server will not close the connection.
-
I have updated the docs.
I understand now, thanks. I'll approve this PR but I'm not the maintainer and cannot make a release. @theturtle32 any change to merge and release?