public static async Task <IStream> GetClientStream(Http2BufferedPipe inPipe, Http2BufferedPipe outPipe) { var resultStream = await CreateClientConnectionAndStream( StreamState.Open, null, inPipe, outPipe); await inPipe.WriteHeaders(resultStream.hEncoder, 1u, false, DefaultStatusHeaders); return(resultStream.stream); }
public static async Task WriteData(byte[] data, Http2BufferedPipe inPipe) { var fh = new FrameHeader { Type = FrameType.Data, StreamId = 1, Flags = (byte)DataFrameFlags.EndOfStream, Length = data.Length, }; await inPipe.WriteFrameHeaderWithTimeout(fh); await inPipe.WriteWithTimeout(new ArraySegment <byte>(data)); }
public static async Task <IStream> GetServerStream(IEnumerable <KeyValuePair <string, string> > headerFields, Http2BufferedPipe inPipe, Http2BufferedPipe outPipe) { var getHeaders = new List <HeaderField>(); foreach (var header in headerFields) { getHeaders.Add( new HeaderField { Name = header.Key, Value = header.Value }); } var resultStream = await CreateServerConnectionAndStream(getHeaders.ToArray(), StreamState.Open, null, inPipe, outPipe); await resultStream.stream.WriteHeadersAsync(DefaultStatusHeaders, false); await outPipe.ReadAndDiscardHeaders(1u, false); return(resultStream.stream); }