private void SendFrame(Http2Stream stream, BaseFrame frame)
{
try
{
byte[] frameBinary = this.serializer.Serialize(frame);
frame.Length = frameBinary.Length;
SendMessage(frameBinary);
if (frame.IsFinal)
{
stream.State = Http2StreamState.HalfClosed;
}
if (this.OnFrameSent != null)
{
this.OnFrameSent(this, new FrameEventArgs(frame));
}
}
catch (Exception e)
{
if (this.OnStreamError != null)
{
this.OnStreamError(this, new StreamErrorEventArgs(stream, e));
}
else if (this.OnError != null)
{
this.OnError(this, new ProtocolErrorEventArgs(e));
}
else
{
throw;
}
}
}