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

Reference client and server should support half-duplex bidi over HTTP 1.1 #741

Merged
merged 3 commits into from
Dec 19, 2023

Conversation

jhump
Copy link
Member

@jhump jhump commented Dec 14, 2023

If some other implementation under test wants to enable half-duplex bidi over HTTP 1.1. (which is ostensibly supported by the configuration flags), then we need the reference client and server to actually work that way, too.

Out of the box, connect-go refuses to support bidi streams over HTTP 1.1, because they might be full-duplex, which can't work over HTTP 1.1 (and otherwise can result in inexplicable errors that may look like network partitions or other connection stability issues since they manifest as the client's upload being cancelled as soon as the server starts its reply). So we have to "trick" the connect-go runtime in order to support this. Also, it means that the actual bidi stream handler in the server impl cannot send back headers immediately since, in half-duplex operation, that immediately cancels the client's upload.

@jhump jhump enabled auto-merge (squash) December 18, 2023 19:06
@jhump jhump merged commit 771a03c into main Dec 19, 2023
4 checks passed
@jhump jhump deleted the jh/support-half-duplex-bidi-over-http1 branch December 19, 2023 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants