As far as I can tell, in Go today (I'm using 1.18), full duplex communication cannot work with their HTTP client. This is because http2.Transport.RoundTrip doesn't return until it has received an EOF from the request body reader, making it impossible to receive or access the response until the request body has been completely sent.