@UnstableApi public class CompressorHttp2ConnectionEncoder extends DecoratingHttp2ConnectionEncoder
content-encoding
标头压缩数据帧。
此类提供的压缩将应用于整个流的数据。
Http2FrameWriter.Configuration
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_COMPRESSION_LEVEL |
static int |
DEFAULT_MEM_LEVEL |
static int |
DEFAULT_WINDOW_BITS |
Constructor and Description |
---|
CompressorHttp2ConnectionEncoder(Http2ConnectionEncoder delegate) |
CompressorHttp2ConnectionEncoder(Http2ConnectionEncoder delegate, int compressionLevel, int windowBits, int memLevel) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.CharSequence |
getTargetContentEncoding(java.lang.CharSequence contentEncoding)
返回解码内容的预期内容编码。
|
protected EmbeddedChannel |
newContentCompressor(ChannelHandlerContext ctx, java.lang.CharSequence contentEncoding)
返回一个新 EmbeddedChannel 编码指定编码的HTTP2消息内容contentEncoding 。
|
ChannelFuture |
writeData(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream, ChannelPromise promise)
将
DATA 帧写入远程端点。
|
ChannelFuture |
writeHeaders(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endStream, ChannelPromise promise)
将HEADERS帧写入远程端点。
|
ChannelFuture |
writeHeaders(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency, short weight, boolean exclusive, int padding, boolean endOfStream, ChannelPromise promise)
将指定优先级的HEADERS帧写入远程端点。
|
connection, flowController, frameWriter, lifecycleManager, pollSentSettings, remoteSettings
close, configuration, writeFrame, writeGoAway, writePing, writePriority, writePushPromise, writeRstStream, writeSettings, writeSettingsAck, writeWindowUpdate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
writeFrame
close, configuration, writeGoAway, writePing, writePriority, writePushPromise, writeRstStream, writeSettings, writeSettingsAck, writeWindowUpdate
public static final int DEFAULT_COMPRESSION_LEVEL
public static final int DEFAULT_WINDOW_BITS
public static final int DEFAULT_MEM_LEVEL
public CompressorHttp2ConnectionEncoder(Http2ConnectionEncoder delegate)
public CompressorHttp2ConnectionEncoder(Http2ConnectionEncoder delegate, int compressionLevel, int windowBits, int memLevel)
public ChannelFuture writeData(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream, ChannelPromise promise)
Http2DataWriter
DATA
帧写入远程端点。
这将导致一个或多个帧被写入上下文。
writeData
在界面
Http2DataWriter
writeData
DecoratingHttp2FrameWriter
ctx
- 用于书写的上下文。
streamId
- 要发送帧的流。
data
- 帧的有效载荷。
这将通过这种方法发布。
padding
- 应添加的其他字节以掩盖真实的内容大小。
必须介于0和256(含)之间。
一个1字节的填充被编码为值为0的填充长度字段。一个256字节的填充被编码为填充长度字段,值255和填充字节255被附加到帧的末尾。
endOfStream
- 指示这是否是为流发送的最后一帧。
promise
- 写作的承诺。
public ChannelFuture writeHeaders(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endStream, ChannelPromise promise)
Http2FrameWriter
writeHeaders
在界面
Http2FrameWriter
writeHeaders
DecoratingHttp2FrameWriter
ctx
- 用于书写的上下文。
streamId
- 要发送帧的流。
headers
- 要发送的标题。
padding
- 应添加的额外字节以掩盖真正的内容大小。
必须介于0和256(含)之间。
endStream
- 指示这是否是流的最后一个帧。
promise
- 写作的承诺。
The header block MUST be processed to ensure a consistent connection state, unless the connection is closed.
如果这个调用修改了HPACK头部状态,你必须抛出连接错误。
如果这一呼吁没有修改HPACK头状态,你可以自由地抛出一个流错误。
public ChannelFuture writeHeaders(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency, short weight, boolean exclusive, int padding, boolean endOfStream, ChannelPromise promise)
Http2FrameWriter
writeHeaders
在界面
Http2FrameWriter
writeHeaders
在课堂上
DecoratingHttp2FrameWriter
ctx
- 用于书写的上下文。
streamId
- 要发送帧的流。
headers
- 要发送的标题。
streamDependency
- 此流应该依赖的流,或者如果它取决于连接,则为0。
weight
- 这个流的重量。
exclusive
- 此流是否应该是其父项的排他依赖项。
padding
- 应添加的其他字节以掩盖真实的内容大小。
必须介于0和256(含)之间。
endOfStream
- 指示这是否是为流发送的最后一帧。
promise
- 写作的承诺。
The header block MUST be processed to ensure a consistent connection state, unless the connection is closed.
如果这个调用修改了HPACK头部状态,你必须抛出连接错误。
如果这一呼吁没有修改HPACK头状态,你可以自由地抛出一个流错误。
protected EmbeddedChannel newContentCompressor(ChannelHandlerContext ctx, java.lang.CharSequence contentEncoding) throws Http2Exception
EmbeddedChannel
,它编码在指定的contentEncoding
编码的contentEncoding
消息内容。
ctx
- 上下文。
contentEncoding
-
content-encoding
标题的值
ByteToMessageDecoder
。
否则null
(或者,您可以抛出Http2Exception
来阻止未知编码)。
Http2Exception
- 如果指定的编码不是不受支持的并且保证有异常
protected java.lang.CharSequence getTargetContentEncoding(java.lang.CharSequence contentEncoding) throws Http2Exception
contentEncoding
是默认行为,大多数压缩机都是如此。
contentEncoding
-
content-encoding
标题的值
Http2Exception
- if the
contentEncoding
is not supported and warrants an exception
Copyright © 2008–2018 The Netty Project. All rights reserved.