@ChannelHandler.Sharable public class ByteArrayEncoder extends MessageToMessageEncoder<byte[]>
ByteBuf.
A typical setup for TCP/IP would be:
and then you can use an array of bytes instead of aChannelPipelinepipeline = ...; // Decoders pipeline.addLast("frameDecoder", newLengthFieldBasedFrameDecoder(1048576, 0, 4, 0, 4)); pipeline.addLast("bytesDecoder", newByteArrayDecoder()); // Encoder pipeline.addLast("frameEncoder", newLengthFieldPrepender(4)); pipeline.addLast("bytesEncoder", newByteArrayEncoder());
ByteBuf
as a message:
void channelRead(ChannelHandlerContext ctx, byte[] bytes) {
...
}
ChannelHandler.Sharable| 构造器和说明 |
|---|
ByteArrayEncoder() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
encode(ChannelHandlerContext ctx,
byte[] msg,
java.util.List<java.lang.Object> out)
Encode from one message to an other.
|
acceptOutboundMessage, writebind, close, connect, deregister, disconnect, flush, readensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitexceptionCaught, handlerAdded, handlerRemovedprotected void encode(ChannelHandlerContext ctx, byte[] msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
MessageToMessageEncoderencode 在类中 MessageToMessageEncoder<byte[]>ctx - the ChannelHandlerContext which this MessageToMessageEncoder belongs tomsg - the message to encode to an other oneout - the List into which the encoded msg should be added
needs to do some kind of aggregationjava.lang.Exception - is thrown if an error occurs