// Outgoing public GoAwayFrame(int lastStreamId, GoAwayStatusCode statusCode) : base(new byte[InitialFrameSize]) { FrameType = ControlFrameType.GoAway; FrameLength = InitialFrameSize - Constants.FramePreambleSize; // 8 LastGoodStreamId = lastStreamId; StatusCode = statusCode; }
/// <summary> /// Writes the go away frame. /// </summary> /// <param name="code">The code.</param> public void WriteGoAway(GoAwayStatusCode code) { //if there were no streams opened if (_lastId == -1) { _lastId = 0; //then set lastId to 0 as spec tells. (See GoAway chapter) } var frame = new GoAwayFrame(_lastId, code); _writeQueue.WriteFrame(frame); }