示例#1
0
        protected Task SendPriorityAsync(int streamId, int streamDependency = 0)
        {
            var priorityFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            priorityFrame.PreparePriority(streamId, streamDependency: streamDependency, exclusive: false, weight: 0);
            return(SendAsync(priorityFrame.Raw));
        }
示例#2
0
        protected Task SendInvalidPriorityFrameAsync(int streamId, int length)
        {
            var priorityFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            priorityFrame.PreparePriority(streamId, streamDependency: 0, exclusive: false, weight: 0);
            priorityFrame.PayloadLength = length;
            return(SendAsync(priorityFrame.Raw));
        }
        protected Task SendInvalidPriorityFrameAsync(int streamId, int length)
        {
            var priorityFrame = new Http2Frame();

            priorityFrame.PreparePriority(streamId, streamDependency: 0, exclusive: false, weight: 0);
            priorityFrame.Length = length;
            return(SendAsync(priorityFrame.Raw));
        }
        public Task SendInvalidPriorityFrameAsync(int streamId, int length)
        {
            var outputWriter  = _pair.Application.Output;
            var priorityFrame = new Http2Frame();

            priorityFrame.PreparePriority(streamId, streamDependency: 0, exclusive: false, weight: 0);
            priorityFrame.PayloadLength = length;

            WriteHeader(priorityFrame, outputWriter);
            return(SendAsync(new byte[length]));
        }
        /* https://tools.ietf.org/html/rfc7540#section-6.3
         +-+-------------------------------------------------------------+
         |E|                  Stream Dependency (31)                     |
         +-+-------------+-----------------------------------------------+
         |   Weight (8)  |
         +-+-------------+
         */
        public Task SendPriorityAsync(int streamId, int streamDependency = 0)
        {
            var outputWriter  = _pair.Application.Output;
            var priorityFrame = new Http2Frame();

            priorityFrame.PreparePriority(streamId, streamDependency: streamDependency, exclusive: false, weight: 0);

            var payload = new byte[priorityFrame.PayloadLength].AsSpan();

            Bitshifter.WriteUInt31BigEndian(payload, (uint)streamDependency);
            payload[4] = 0; // Weight

            WriteHeader(priorityFrame, outputWriter);
            return(SendAsync(payload));
        }