@UnstableApi public class DelegatingDecompressorFrameListener extends Http2FrameListenerDecorator
content-encoding
标头解压缩数据帧。
此类提供的解压缩将应用于整个流的数据。
listener
Constructor and Description |
---|
DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener) |
DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener, boolean strict) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.CharSequence |
getTargetContentEncoding(java.lang.CharSequence contentEncoding)
返回解码内容的预期内容编码。
|
protected EmbeddedChannel |
newContentDecompressor(ChannelHandlerContext ctx, java.lang.CharSequence contentEncoding)
返回一个新的 EmbeddedChannel ,它解码在指定的contentEncoding 编码的contentEncoding 消息内容。
|
int |
onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream)
处理入站
DATA 框架。
|
void |
onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endStream)
处理入站
HEADERS 框架。
|
void |
onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency, short weight, boolean exclusive, int padding, boolean endStream)
处理带有指定优先级信息的入站
HEADERS 帧。
|
onGoAwayRead, onPingAckRead, onPingRead, onPriorityRead, onPushPromiseRead, onRstStreamRead, onSettingsAckRead, onSettingsRead, onUnknownFrame, onWindowUpdateRead
public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener)
public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener, boolean strict)
public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) throws Http2Exception
Http2FrameListener
DATA
帧。
onDataRead
在界面
Http2FrameListener
onDataRead
在课堂
Http2FrameListenerDecorator
ctx
- 读取帧的处理程序的上下文。
streamId
- 帧的主题流。
data
- 帧的有效载荷缓冲区。
该缓冲区将由编解码器释放。
padding
- 应添加的其他字节以掩盖真实的内容大小。
必须介于0和256(含)之间。
endOfStream
- 表示这是否是此流的远程端点发送的最后一帧。
WINDOW_UPDATE
)。
返回等于data
+ padding
长度的值将有效地选择退出该帧的应用程序级流量控制。
返回小于data
+ padding
长度的值将推迟处理字节的返回,应用程序稍后必须通过Http2LocalFlowController.consumeBytes(Http2Stream, int)
返回。
返回值必须> = 0
,<= data.readableBytes()
+ padding
。
Http2Exception
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endStream) throws Http2Exception
Http2FrameListener
HEADERS
帧。
对于每个HEADERS
帧序列,将仅调用以下方法之一。 当收到END_HEADERS
标志时将会调用一个。
Http2FrameListener.onHeadersRead(ChannelHandlerContext, int, Http2Headers, int, boolean)
Http2FrameListener.onHeadersRead(ChannelHandlerContext, int, Http2Headers, int, short, boolean, int, boolean)
Http2FrameListener.onPushPromiseRead(ChannelHandlerContext, int, int, Http2Headers, int)
换一种说法; Http2Headers
将包含当前消息交换步骤的所有标题(不需要额外的排队)。
onHeadersRead
接口
Http2FrameListener
onHeadersRead
在课堂上
Http2FrameListenerDecorator
ctx
- 读取帧的处理程序的上下文。
streamId
- 帧的主题流。
headers
- 收到的标题。
padding
- 应添加的额外字节以掩盖真实的内容大小。
必须介于0和256(含)之间。
endStream
- 指示这是否是来自此流的远程端点的最后一帧。
Http2Exception
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency, short weight, boolean exclusive, int padding, boolean endStream) throws Http2Exception
Http2FrameListener
复制的描述
HEADERS
帧。
只有在遇到END_HEADERS
时END_HEADERS
调用。
对于每个HEADERS
帧序列,只会调用以下方法之一。 当收到END_HEADERS
标志时将会调用其中一个。
Http2FrameListener.onHeadersRead(ChannelHandlerContext, int, Http2Headers, int, boolean)
Http2FrameListener.onHeadersRead(ChannelHandlerContext, int, Http2Headers, int, short, boolean, int, boolean)
Http2FrameListener.onPushPromiseRead(ChannelHandlerContext, int, int, Http2Headers, int)
换一种说法; Http2Headers
将包含当前消息交换步骤的所有标题(不需要额外的排队)。
onHeadersRead
在界面
Http2FrameListener
onHeadersRead
在课堂上
Http2FrameListenerDecorator
ctx
- 读取框架的句柄的上下文。
streamId
- 帧的主题流。
headers
- 收到的标题。
streamDependency
- 此流依赖的流,如果依赖于连接,则为0。
weight
- 流的新权重。
exclusive
- 流是否应该是其父项的排他依赖项。
padding
- 应添加的额外字节以遮盖真实内容大小。
必须介于0和256(含)之间。
endStream
- 指示这是否是来自此流的远程端点的最后一个帧。
Http2Exception
protected EmbeddedChannel newContentDecompressor(ChannelHandlerContext ctx, java.lang.CharSequence contentEncoding) throws Http2Exception
EmbeddedChannel
,它解码在指定的contentEncoding
编码的contentEncoding
消息内容。
contentEncoding
-
content-encoding
标头的值
ByteToMessageDecoder
如果支持指定的编码。
否则null
(或者,您可以抛出Http2Exception
阻止未知编码)。
Http2Exception
- 如果指定的编码不是不受支持的并且保证有异常
protected java.lang.CharSequence getTargetContentEncoding(java.lang.CharSequence contentEncoding) throws Http2Exception
"identity"
,大多数解压缩程序都是这种情况。
contentEncoding
-
content-encoding
标题的值
Http2Exception
- if the
contentEncoding
is not supported and warrants an exception
Copyright © 2008–2018 The Netty Project. All rights reserved.