grpc-js: Implement channel idle timeout #2471
Merged
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.
Implement channel idle timeout functionality: after a channel has no active calls for a certain amount of time, it will close any active connections and enter the IDLE state. The amount of time is configured by the
grpc.client_idle_timeout_ms
option. The default value is 30 minutes (1,800,000) and the minimum is 1 second (1000).The changes making some fields
readonly
are primarily to make it easier to track which ones will be constant for the lifetime of the object and which may need to be reset when going to the IDLE state.I also added some testing helper code to make it easier to add new tests of client or server behavior.
This is related to #2463 in the sense that that change's client management setup assumes that this change is coming.