http2-wrapper icon indicating copy to clipboard operation
http2-wrapper copied to clipboard

Support sending request trailers

Open pimterry opened this issue 1 year ago • 0 comments

ClientRequest doesn't include the addTrailers method so trailers cannot be added to outgoing requests.

This takes a little thought, since the H1 API allows adding trailers at effectively any time until the response is closed, while the H2 API requires:

  • Setting waitForTrailers: true when creating the initial request - this disables stream auto-closing after the body is sent
  • Waiting for the wantTrailers event
  • Calling sendTrailers - this appends the trailers and closes the stream

I think the best solution is to always set wantTrailers: true and then manually call stream.close() every time that addTrailers hasn't been called before the body ends (assuming nothing else has closed the stream and there's no errors etc). I think that should result in more or less the same behaviour as H1.

pimterry avatar Apr 29 '24 17:04 pimterry