feat: Example of configuring HTTP/2 via SDK HttpConfiguration#21
Draft
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
Draft
feat: Example of configuring HTTP/2 via SDK HttpConfiguration#21devin-ai-integration[bot] wants to merge 1 commit intomainfrom
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
Conversation
Demonstrates how to use a DelegatingHandler with the SDK's HttpConfigurationBuilder.MessageHandler() to set the HTTP version to 2.0 on all outgoing SDK requests. Co-Authored-By: rlamb@launchdarkly.com <rlamb@launchdarkly.com>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Demonstrates how to force HTTP/2 on all LaunchDarkly SDK traffic using the SDK's
HttpConfigurationBuilder.MessageHandler()API. This is intended as a reference branch that can be shared with customers who need HTTP/2 support.The approach uses a
DelegatingHandler(Http2Handler) that wraps aSocketsHttpHandlerand setsrequest.Version = HttpVersion.Version20on every outgoing request. This handler is then passed to the SDK configuration viaComponents.HttpConfiguration().MessageHandler(handler).Tested successfully against LaunchDarkly — SDK initializes and streams data with this configuration.
Review & Testing Checklist for Human
MessageHandler, the SDK's built-inConnectTimeoutandProxyconfiguration on its internalSocketsHttpHandleris bypassed. Verify this tradeoff is acceptable for the customer's use case, or consider adding a comment noting they should configure theSocketsHttpHandlerthemselves if they need those features.CI=truewhich exits after init. Manually run withoutCI=trueand confirm the SSE streaming connection remains stable over HTTP/2 for several minutes.Recommended test plan: Run
LAUNCHDARKLY_SDK_KEY=<key> dotnet run --project HelloDotNet/HelloDotNet.csprojand verify the SDK initializes, evaluates flags, and receives streaming updates over time.Notes