@ChannelHandler.Sharable public class ByteArrayEncoder extends MessageToMessageEncoder<byte[]>
ByteBuf
。
TCP / IP的典型设置是:
ChannelPipeline
pipeline = ...;
// Decoders
pipeline.addLast("frameDecoder",
new LengthFieldBasedFrameDecoder
(1048576, 0, 4, 0, 4));
pipeline.addLast("bytesDecoder",
new ByteArrayDecoder
());
// Encoder
pipeline.addLast("frameEncoder", new LengthFieldPrepender
(4));
pipeline.addLast("bytesEncoder", new ByteArrayEncoder
());
然后您可以使用字节数组而不是ByteBuf
作为消息:
void channelRead(ChannelHandlerContext
ctx, byte[] bytes) {
...
}
ChannelHandler.Sharable
Constructor and Description |
---|
ByteArrayEncoder() |
Modifier and Type | Method and Description |
---|---|
protected void |
encode(ChannelHandlerContext ctx, byte[] msg, java.util.List<java.lang.Object> out)
从一条消息编码到另一条消息。
|
acceptOutboundMessage, write
bind, close, connect, deregister, disconnect, flush, read
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
exceptionCaught, handlerAdded, handlerRemoved
protected void encode(ChannelHandlerContext ctx, byte[] msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
MessageToMessageEncoder
encode
,课时
MessageToMessageEncoder<byte[]>
ctx
- MessageToMessageEncoder
属于的ChannelHandlerContext
msg
- 要编码到另一个的消息
out
- 应该添加编码味精的
List
需要做某种聚合
java.lang.Exception
- 发生错误时抛出
Copyright © 2008–2018 The Netty Project. All rights reserved.