// Outgoing
 public GoAwayFrame(int lastStreamId, GoAwayStatusCode statusCode)
     : base(new byte[InitialFrameSize])
 {
     FrameType = ControlFrameType.GoAway;
     FrameLength = InitialFrameSize - Constants.FramePreambleSize; // 8
     LastGoodStreamId = lastStreamId;
     StatusCode = statusCode;
 }
Exemplo n.º 2
0
        /// <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);
        }