Ensure new provider works with older server versions #363
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.
The new client relies on a message type in order to support heartbeats and sync status. If it's talking to an older server version, the server will ignore its requests for heartbeats, and the client will assume the connection is unhealthy and attempt to reconnect in a periodic loop.
To test this, run the examples along with an old version of the server, e.g.
npx [email protected] serve
This fixes the library by adding a boolean field
receivedAtLeastOneSyncResponse
. As long as this isfalse
, we will continue to send heartbeats and sync status requests, but we will never terminate a connection over a missed heartbeat.This is a somewhat crude approach. We should support version negotiation eventually. But it's nice and simple, and will be easy to rip out later.