private void OnSessionFrame(object sender, ControlFrameEventArgs e)
{
switch (e.Frame.Type)
{
case FrameType.SynStream:
OpenStream(e.Frame.StreamId, e.Frame.Headers, e.Frame.IsFinal);
break;
case FrameType.SynReply:
Http2Stream stream = this.GetStreamById(e.Frame.StreamId);
if (stream != null && stream.State != Http2StreamState.Closed && stream.State != Http2StreamState.HalfClosed)
{
stream.State = Http2StreamState.Accepted;
}
break;
case FrameType.Settings:
if (e.Frame.SettingsHeaders != null)
{
if (e.Frame.SettingsHeaders.ContainsKey((int)(SettingsIds.SETTINGS_INITIAL_WINDOW_SIZE)))
CurrentWindowBalanceFromServer =
e.Frame.SettingsHeaders[(int)(SettingsIds.SETTINGS_INITIAL_WINDOW_SIZE)];
}
break;
}
}