Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Realtime: timeouts implementations are outdated #41

Closed
ricardopereira opened this issue Oct 30, 2015 · 4 comments
Closed

Realtime: timeouts implementations are outdated #41

ricardopereira opened this issue Oct 30, 2015 · 4 comments

Comments

@ricardopereira
Copy link
Contributor

I'm opening this issue because of:

(RTC7) The client library must use the configured timeouts specified in the ClientOptions, 
falling back to the client library defaults and defaults described in ClientOptions below

Currently, the ClientOptions doesn't have any of the TO3l specifications:

  • disconnectedRetryTimeout: possible to implement with small refactoring
  • suspendedRetryTimeout: possible to implement with small refactoring
  • httpOpenTimeout: bigger refactoring
  • httpRequestTimeout: bigger refactoring
  • httpMaxRetryCount: bigger refactoring
  • httpMaxRetryDuration: bigger refactoring

The Realtime client use some defaults (basic timeouts):

  • connectTimeout: on connecting to the server
  • disconnectTimeout: retry interval when Disconnected
  • suspendTimeout: retry interval when Suspended

Different from what's defined on DF1.

DF1a and DF1b requires some refactoring.

@ricardopereira
Copy link
Contributor Author

With this I need to know what's important to test right now having in mind the current state of the lib.

@mattheworiordan /cc @paddybyers

@ricardopereira ricardopereira mentioned this issue Oct 30, 2015
Merged
@ricardopereira
Copy link
Contributor Author

Check changes:
ably/docs@1f853e9

@mattheworiordan
Copy link
Member

@ricardopereira implementing configurable timeouts is probably lower priority for now.

I am not sure what you mean by DF1a and DF1b needing refactoring, to be clear the impact I assume is:

  • connectionStateTtl will simply map the existing max time in state for the disconnected state i.e. the iOS Realtime library should have already implemented some mechanism to move from the disconnected state to the suspended state after X time after being disconnected. connectionStateTtl is simply this value. Either way, this is not a public API attribute anyway
  • realtimeRequestTimeout is simply a generic timeout value that is applied to any request that should auto-fail if a response does not come back in that time, for example (RTN12b) If the CLOSED ProtocolMessage is not received within the default realtime request timeout, the transport will be disconnected and the connection will automatically move to the CLOSED state

@tcard
Copy link
Contributor

tcard commented Nov 3, 2017

This is done.

@tcard tcard closed this as completed Nov 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants