@UnstableApi public class StreamBufferingEncoder extends DecoratingHttp2ConnectionEncoder
Http2ConnectionEncoder ,将所有方法调用分派到另一个Http2ConnectionEncoder ,直到达到SETTINGS_MAX_CONCURRENT_STREAMS 。
当这个限制被击中时,不是拒绝任何新的流,而是实施缓冲新创建的流及其相应的帧。 一旦活动流关闭或并发流的最大数量增加,该编码器将自动尝试清空其缓冲区并尽可能多地创建新的流。
如果从远程端点接收到GOAWAY帧,则ID小于指定lastStreamId流的所有缓冲写入将立即失败,并显示StreamBufferingEncoder.Http2GoAwayException 。
如果通道/编码器关闭,则所有新的和缓冲的写入将立即失败,并显示StreamBufferingEncoder.Http2ChannelClosedException 。
该实现使得缓冲大部分是透明的,并且预计将被用作DefaultHttp2ConnectionEncoder的嵌入式装饰器。
| Modifier and Type | Class and Description |
|---|---|
static class |
StreamBufferingEncoder.Http2ChannelClosedException
如果由于编码器关闭而导致缓冲流终止,则抛出。
|
static class |
StreamBufferingEncoder.Http2GoAwayException
如果缓冲流由于收到 GOAWAY而终止,则由StreamBufferingEncoder抛出。
|
Http2FrameWriter.Configuration| Constructor and Description |
|---|
StreamBufferingEncoder(Http2ConnectionEncoder delegate) |
StreamBufferingEncoder(Http2ConnectionEncoder delegate, int initialMaxConcurrentStreams) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
关闭此作者并释放所有分配的资源。
|
int |
numBufferedStreams()
指示当前缓冲的流的数量,等待创建。
|
void |
remoteSettings(Http2Settings settings)
设置HTTP / 2连接的远程端点的设置。
|
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帧写入远程端点。
|
ChannelFuture |
writeRstStream(ChannelHandlerContext ctx, int streamId, long errorCode, ChannelPromise promise)
将RST_STREAM帧写入远程端点。
|
connection, flowController, frameWriter, lifecycleManager, pollSentSettingsconfiguration, writeFrame, writeGoAway, writePing, writePriority, writePushPromise, writeSettings, writeSettingsAck, writeWindowUpdateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitwriteFrameconfiguration, writeGoAway, writePing, writePriority, writePushPromise, writeSettings, writeSettingsAck, writeWindowUpdatepublic StreamBufferingEncoder(Http2ConnectionEncoder delegate)
public StreamBufferingEncoder(Http2ConnectionEncoder delegate, int initialMaxConcurrentStreams)
public int numBufferedStreams()
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头状态,你可以自由地抛出一个流错误。
public ChannelFuture writeRstStream(ChannelHandlerContext ctx, int streamId, long errorCode, ChannelPromise promise)
Http2FrameWriter复制的描述
writeRstStream接口
Http2FrameWriter
writeRstStream在课程
DecoratingHttp2FrameWriter
ctx - 用于书写的上下文。
streamId - 要发送帧的流。
errorCode - 指示故障性质的错误代码。
promise - 写作的承诺。
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 void remoteSettings(Http2Settings settings) throws Http2Exception
Http2ConnectionEncoder复制的描述
remoteSettings在界面
Http2ConnectionEncoder
remoteSettings在课程
DecoratingHttp2ConnectionEncoder
Http2Exception
public void close()
Http2FrameWriter
close ,界面
Http2FrameWriter
close接口
java.io.Closeable
close在界面
java.lang.AutoCloseable
close在课程
DecoratingHttp2FrameWriter
Copyright © 2008–2018 The Netty Project. All rights reserved.