Reference client and server should support half-duplex bidi over HTTP 1.1 #741
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.
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.