public class HAProxyMessageDecoder extends ByteToMessageDecoder
ByteToMessageDecoder.Cumulator
ChannelHandler.Sharable
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
Constructor and Description |
---|
HAProxyMessageDecoder()
创建一个没有附加数据(TLV)限制的新解码器
|
HAProxyMessageDecoder(int maxTlvSize)
创建具有受限附加数据(TLV)大小的新解码器
注:限制TLV大小仅影响v2二进制标头的处理。
|
Modifier and Type | Method and Description |
---|---|
void |
channelRead(ChannelHandlerContext ctx, java.lang.Object msg)
|
protected void |
decode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out)
解码从一个 ByteBuf 到另一个。
|
static ProtocolDetectionResult<HAProxyProtocolVersion> |
detectProtocol(ByteBuf buffer)
|
boolean |
isSingleDecode()
如果
true 则每个
ByteToMessageDecoder.channelRead(ChannelHandlerContext, Object) 呼叫仅解码一条消息。
|
actualReadableBytes, callDecode, channelInactive, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
ensureNotSharable, handlerAdded, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerAdded
public HAProxyMessageDecoder()
public HAProxyMessageDecoder(int maxTlvSize)
注意:限制TLV大小仅影响v2二进制头的处理。 此外,正如1.5规范允许TLV数据目前被忽略。 为获得最佳性能,最好将您的上游代理主机配置为不发送TLV数据,并实例化最大TLV大小为0
。
maxTlvSize
- v2头中的附加数据(类型 - 长度 - 值向量)允许的最大字节数
public boolean isSingleDecode()
ByteToMessageDecoder
true
那么每个ByteToMessageDecoder.channelRead(ChannelHandlerContext, Object)
呼叫只解码一条消息。
默认值为false
因为这会影响性能。
isSingleDecode
在课堂上
ByteToMessageDecoder
public void channelRead(ChannelHandlerContext ctx, java.lang.Object msg) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRead(Object)
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelRead
在界面
ChannelInboundHandler
channelRead
在课堂上
ByteToMessageDecoder
java.lang.Exception
protected final void decode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out) throws java.lang.Exception
ByteToMessageDecoder
decode
在课堂上
ByteToMessageDecoder
ctx
- 此ByteToMessageDecoder
所属的ChannelHandlerContext
in
- 从中读取数据的ByteBuf
out
- 应该添加解码消息的
List
java.lang.Exception
- 发生错误时抛出
public static ProtocolDetectionResult<HAProxyProtocolVersion> detectProtocol(ByteBuf buffer)
Copyright © 2008–2018 The Netty Project. All rights reserved.