feature: Handle error 429 when connecting websocket #213
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.
A RateLimitGuard can be used to limit (re)connection of sockets.
This works well until the server returns 429 and the client continues to use the configured client rate limit.
If the client is too eager to reconnect, the client may be stuck in a 429 rate limit loop.
This feature enables setting
SocketExchangeOptions.ConnectDelayAfterRateLimited
which will set aRetryAfterGuard
on the connection when the server returns 429.ClientWebSocket.Connect
when connecting the socket failsRateLimitItemType
to RetryAfterGuardSocketExchangeOptions.ConnectDelayAfterRateLimited
Note: I could not create a unit test for this behavior.