public class WebSocketFrameAggregator extends MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
WebSocketFrame
的中间发送,它们只会被转发到流水线中的下一个处理程序。
ChannelHandler.Sharable
Constructor and Description |
---|
WebSocketFrameAggregator(int maxContentLength)
创建一个新的实例
|
Modifier and Type | Method and Description |
---|---|
protected WebSocketFrame |
beginAggregation(WebSocketFrame start, ByteBuf content)
根据指定的开始消息和指定的内容创建新的聚合消息。
|
protected boolean |
closeAfterContinueResponse(java.lang.Object msg)
在写入
MessageAggregator.newContinueResponse(Object, int, ChannelPipeline) 的结果之后,确定通道是否应该关闭。
|
protected boolean |
ignoreContentAfterContinueResponse(java.lang.Object msg)
确定当前请求/响应的所有对象是否应该被忽略。
|
protected boolean |
isAggregated(WebSocketFrame msg)
当且仅当指定的消息已经聚合时才返回
true 。
|
protected boolean |
isContentLengthInvalid(WebSocketFrame start, int maxContentLength)
确定消息
start 的内容长度是否已知,并且是否大于
maxContentLength 。
|
protected boolean |
isContentMessage(WebSocketFrame msg)
当且仅当指定的消息是内容消息时返回
true 。
|
protected boolean |
isLastContentMessage(ContinuationWebSocketFrame msg)
当且仅当指定的消息是最后一个内容消息时返回
true 。
|
protected boolean |
isStartMessage(WebSocketFrame msg)
当且仅当指定的消息是开始消息时返回
true 。
|
protected java.lang.Object |
newContinueResponse(WebSocketFrame start, int maxContentLength, ChannelPipeline pipeline)
如有必要,返回指定开始消息的'continue response'。
|
acceptInboundMessage, aggregate, channelInactive, channelReadComplete, ctx, decode, finishAggregation, handleOversizedMessage, handlerAdded, handlerRemoved, isHandlingOversizedMessage, maxContentLength, maxCumulationBufferComponents, setMaxCumulationBufferComponents
channelRead
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggered
ensureNotSharable, isSharable
public WebSocketFrameAggregator(int maxContentLength)
maxContentLength
- 如果聚集帧的大小超过此值,则引发TooLongFrameException
。
protected boolean isStartMessage(WebSocketFrame msg) throws java.lang.Exception
MessageAggregator
true
。
通常情况下,此方法以instanceof
作为单个return
语句instanceof
:
return msg instanceof MyStartMessage;
isStartMessage
在课堂上
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
java.lang.Exception
protected boolean isContentMessage(WebSocketFrame msg) throws java.lang.Exception
MessageAggregator
true
。
通常,这种方法是作为一个return
声明与instanceof
:
return msg instanceof MyContentMessage;
isContentMessage
在课堂上
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
java.lang.Exception
protected boolean isLastContentMessage(ContinuationWebSocketFrame msg) throws java.lang.Exception
MessageAggregator
true
。
通常情况下,此方法作为return
的单个return
语句instanceof
:
return msg instanceof MyLastContentMessage;
或者用instanceof
和布尔字段检查:
return msg instanceof MyContentMessage && msg.isLastFragment();
isLastContentMessage
在课程
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
java.lang.Exception
protected boolean isAggregated(WebSocketFrame msg) throws java.lang.Exception
MessageAggregator
true
。
如果此方法返回true
,则此处理程序将仅将消息按true
转发给下一个处理程序。
isAggregated
在课堂上
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
java.lang.Exception
protected boolean isContentLengthInvalid(WebSocketFrame start, int maxContentLength)
MessageAggregator
start
的内容长度是否已知,并且是否大于
maxContentLength
。
isContentLengthInvalid
在课程
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
start
- 可能指示内容长度的消息。
maxContentLength
- 允许的最大内容长度。
true
如果消息start
的内容长度已知,并且它大于maxContentLength
。
false
否则。
protected java.lang.Object newContinueResponse(WebSocketFrame start, int maxContentLength, ChannelPipeline pipeline)
MessageAggregator
newContinueResponse
在课堂上
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
null
protected boolean closeAfterContinueResponse(java.lang.Object msg) throws java.lang.Exception
MessageAggregator
MessageAggregator.newContinueResponse(Object, int, ChannelPipeline)
的结果后,确定通道是否应该关闭。
closeAfterContinueResponse
在类
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
msg
-从返回值
MessageAggregator.newContinueResponse(Object, int, ChannelPipeline)
。
true
如果在写入MessageAggregator.newContinueResponse(Object, int, ChannelPipeline)
的结果后关闭通道。
false
否则。
java.lang.Exception
protected boolean ignoreContentAfterContinueResponse(java.lang.Object msg) throws java.lang.Exception
MessageAggregator
MessageAggregator.isContentMessage(Object)
返回true
时,消息将不再被忽略。
ignoreContentAfterContinueResponse
,上课
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
msg
-从返回值
MessageAggregator.newContinueResponse(Object, int, ChannelPipeline)
。
true
如果当前请求/响应的所有对象都应该被忽略。
false
否则。
java.lang.Exception
protected WebSocketFrame beginAggregation(WebSocketFrame start, ByteBuf content) throws java.lang.Exception
MessageAggregator
beginAggregation
在课堂上
MessageAggregator<WebSocketFrame,WebSocketFrame,ContinuationWebSocketFrame,WebSocketFrame>
java.lang.Exception
Copyright © 2008–2018 The Netty Project. All rights reserved.