@UnstableApi public class Http2EventAdapter extends java.lang.Object implements Http2Connection.Listener, Http2FrameListener
Http2Connection.Listener
和Http2FrameListener
带到一起以提供NOOP实现,以便继承类可以选择性地选择要覆盖的方法。
Constructor and Description |
---|
Http2EventAdapter() |
Modifier and Type | Method and Description |
---|---|
int |
onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream)
处理入站
DATA 帧。
|
void |
onGoAwayRead(ChannelHandlerContext ctx, int lastStreamId, long errorCode, ByteBuf debugData)
处理入站
GO_AWAY 框架。
|
void |
onGoAwayReceived(int lastStreamId, long errorCode, ByteBuf debugData)
当从远程端点收到
GOAWAY 时调用。
|
void |
onGoAwaySent(int lastStreamId, long errorCode, ByteBuf debugData)
当连接发送
GOAWAY 帧时调用。
|
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 帧。
|
void |
onPingAckRead(ChannelHandlerContext ctx, long data)
处理入站
PING 确认。
|
void |
onPingRead(ChannelHandlerContext ctx, long data)
处理入站
PING 帧。
|
void |
onPriorityRead(ChannelHandlerContext ctx, int streamId, int streamDependency, short weight, boolean exclusive)
处理入站
PRIORITY 框架。
|
void |
onPushPromiseRead(ChannelHandlerContext ctx, int streamId, int promisedStreamId, Http2Headers headers, int padding)
处理入站
PUSH_PROMISE 帧。
|
void |
onRstStreamRead(ChannelHandlerContext ctx, int streamId, long errorCode)
处理入站
RST_STREAM 框架。
|
void |
onSettingsAckRead(ChannelHandlerContext ctx)
处理入站
SETTINGS 确认帧。
|
void |
onSettingsRead(ChannelHandlerContext ctx, Http2Settings settings)
处理入站
SETTINGS 框架。
|
void |
onStreamActive(Http2Stream stream)
通知监听器给定的流是活动的(即
|
void |
onStreamAdded(Http2Stream stream)
通知侦听器给定的流已添加到连接。
|
void |
onStreamClosed(Http2Stream stream)
通知聆听者该给定流现在在两个方向上都是
CLOSED ,并且将不再可以通过
Http2Connection.forEachActiveStream(Http2StreamVisitor) 访问。
|
void |
onStreamHalfClosed(Http2Stream stream)
通知监听器给定的流已经从
OPEN 转换为
HALF CLOSED 。
|
void |
onStreamRemoved(Http2Stream stream)
通知监听者,给定的数据流现在已经从连接中移除,不再通过
Http2Connection.stream(int) 返回。
|
void |
onUnknownFrame(ChannelHandlerContext ctx, byte frameType, int streamId, Http2Flags flags, ByteBuf payload)
处理程序不是由HTTP / 2规范定义的。
|
void |
onWindowUpdateRead(ChannelHandlerContext ctx, int streamId, int windowSizeIncrement)
处理入站
WINDOW_UPDATE 框架。
|
public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) throws Http2Exception
Http2FrameListener
复制的描述
DATA
帧。
onDataRead
在界面
Http2FrameListener
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
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
ctx
- 读取框架的句柄的上下文。
streamId
- 帧的主题流。
headers
- 收到的标题。
streamDependency
- 此流依赖的流,如果依赖于连接,则为0。
weight
- 流的新权重。
exclusive
- 流是否应该是其父项的排他依赖。
padding
- 应添加的其他字节以掩盖真实的内容大小。
必须介于0和256(含)之间。
endStream
- 指示这是否是来自此流的远程端点的最后一个帧。
Http2Exception
public void onPriorityRead(ChannelHandlerContext ctx, int streamId, int streamDependency, short weight, boolean exclusive) throws Http2Exception
Http2FrameListener
PRIORITY
帧。
请注意,是有可能有这种方法称为无流对象存在任何streamId
, streamDependency
,或两者兼而有之。 这是因为当流处于CLOSED
状态时,可以发送/接收PRIORITY
帧。
onPriorityRead
接口
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
streamId
- 帧的主题流。
streamDependency
- 此流所依赖的流,如果依赖于连接,则为0。
weight
- 流的新权重。
exclusive
- 流是否应该是其父项的排他依赖项。
Http2Exception
public void onRstStreamRead(ChannelHandlerContext ctx, int streamId, long errorCode) throws Http2Exception
Http2FrameListener
RST_STREAM
框架。
onRstStreamRead
在界面
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
streamId
- 正在终止的流。
errorCode
- 识别失败类型的错误代码。
Http2Exception
public void onSettingsAckRead(ChannelHandlerContext ctx) throws Http2Exception
Http2FrameListener
复制的描述
SETTINGS
确认帧。
onSettingsAckRead
在界面
Http2FrameListener
ctx
- 读取框架的句柄的上下文。
Http2Exception
public void onSettingsRead(ChannelHandlerContext ctx, Http2Settings settings) throws Http2Exception
Http2FrameListener
SETTINGS
帧。
onSettingsRead
在界面
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
settings
- 从远程端点接收的设置。
Http2Exception
public void onPingRead(ChannelHandlerContext ctx, long data) throws Http2Exception
Http2FrameListener
PING
框架。
onPingRead
在界面
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
data
- 帧的有效载荷。
Http2Exception
public void onPingAckRead(ChannelHandlerContext ctx, long data) throws Http2Exception
Http2FrameListener
PING
确认。
onPingAckRead
接口
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
data
- 帧的有效载荷。
Http2Exception
public void onPushPromiseRead(ChannelHandlerContext ctx, int streamId, int promisedStreamId, Http2Headers headers, int padding) throws Http2Exception
Http2FrameListener
PUSH_PROMISE
帧。
只有在遇到END_HEADERS
时END_HEADERS
调用。
承诺的请求必须是权威的,可缓存的和安全的。 见[RFC http2], Section 8.2 。
每个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
将包含当前消息交换步骤的所有标题(不需要额外的排队)。
onPushPromiseRead
在界面
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
streamId
- 帧被发送的流。
promisedStreamId
- 承诺流的ID。
headers
- 收到的标题。
padding
- 应添加的其他字节以掩盖真实的内容大小。
必须介于0和256(含)之间。
Http2Exception
public void onGoAwayRead(ChannelHandlerContext ctx, int lastStreamId, long errorCode, ByteBuf debugData) throws Http2Exception
Http2FrameListener
GO_AWAY
帧。
onGoAwayRead
,界面
Http2FrameListener
ctx
- 读取框架的句柄的上下文。
lastStreamId
- 远程端点的最后一个已知流。
errorCode
- 错误代码,如果异常关闭。
debugData
- 应用程序定义的调试数据。
如果这个缓冲区需要被监听者保留,他们必须进行复制。
Http2Exception
public void onWindowUpdateRead(ChannelHandlerContext ctx, int streamId, int windowSizeIncrement) throws Http2Exception
Http2FrameListener
WINDOW_UPDATE
帧。
onWindowUpdateRead
在界面
Http2FrameListener
ctx
- 读取框架的句柄的上下文。
streamId
- 帧被发送的流。
windowSizeIncrement
- 远程端点流量控制窗口的字节数增加。
Http2Exception
public void onUnknownFrame(ChannelHandlerContext ctx, byte frameType, int streamId, Http2Flags flags, ByteBuf payload) throws Http2Exception
Http2FrameListener
onUnknownFrame
在界面
Http2FrameListener
ctx
- 读取帧的处理程序的上下文。
frameType
- 来自HTTP / 2头的帧类型。
streamId
- 帧被发送的流。
flags
-
flags
的标志。
payload
- 帧的有效载荷。
Http2Exception
public void onStreamAdded(Http2Stream stream)
Http2Connection.Listener
OPEN
或HALF CLOSED
)。
如果RuntimeException
被抛出,它将被记录并且不被传播 。 不支持从此方法中抛出并被视为编程错误。
onStreamAdded
接口
Http2Connection.Listener
public void onStreamActive(Http2Stream stream)
Http2Connection.Listener
OPEN
或HALF CLOSED
)。
如果RuntimeException
被抛出,它将被记录并不被传播 。 不支持从此方法中抛出并被视为编程错误。
onStreamActive
,界面
Http2Connection.Listener
public void onStreamHalfClosed(Http2Stream stream)
Http2Connection.Listener
OPEN
转换为HALF CLOSED
。
此方法将不被调用,直到状态转换从当发生Http2Connection.Listener.onStreamActive(Http2Stream)
被调用。
该流可以被检查以确定哪一边是HALF CLOSED
。
如果RuntimeException
被抛出,它将被记录并且不被传播 。 不支持从此方法中抛出并被视为编程错误。
onStreamHalfClosed
在界面
Http2Connection.Listener
public void onStreamClosed(Http2Stream stream)
Http2Connection.Listener
CLOSED
,并将不再可以通过Http2Connection.forEachActiveStream(Http2StreamVisitor)
访问。
如果RuntimeException
被引发,它将被记录并且不被传播 。 不支持从此方法中抛出并被视为编程错误。
onStreamClosed
在界面
Http2Connection.Listener
public void onStreamRemoved(Http2Stream stream)
Http2Connection.Listener
Http2Connection.stream(int)
返回。
在删除它们之前,连接可能会保持一段时间不活动的流。
如果RuntimeException
被抛出,它将被记录并且不被传播 。 不支持从此方法中抛出并被视为编程错误。
onStreamRemoved
在界面
Http2Connection.Listener
public void onGoAwaySent(int lastStreamId, long errorCode, ByteBuf debugData)
Http2Connection.Listener
GOAWAY
帧时调用。
如果RuntimeException
被抛出,它将被记录并不被传播 。 不支持从此方法中抛出并被视为编程错误。
onGoAwaySent
在界面
Http2Connection.Listener
lastStreamId
- 远程端点的最后一个已知流。
errorCode
- 错误代码,如果异常关闭。
debugData
- 应用程序定义的调试数据。
public void onGoAwayReceived(int lastStreamId, long errorCode, ByteBuf debugData)
Http2Connection.Listener
GOAWAY
时调用。
此事件处理程序重复Http2FrameListener.onGoAwayRead(io.netty.channel.ChannelHandlerContext, int, long, io.netty.buffer.ByteBuf)
,但在此处添加以简化以统一方式处理GOAWAY
应用程序逻辑。
一个应用程序通常不应该处理这两个事件,但如果它的确如此,则在通知Http2FrameListener
之后调用该方法。
如果RuntimeException
被引发,它将被记录并且不被传播 。 不支持从此方法中抛出并被视为编程错误。
onGoAwayReceived
,界面
Http2Connection.Listener
lastStreamId
- 远程端点的最后一个已知流。
errorCode
- 错误代码,如果异常关闭。
debugData
- 应用程序定义的调试数据。
Copyright © 2008–2018 The Netty Project. All rights reserved.