Class ByteArrayEncoder

All Implemented Interfaces:
ChannelHandler, ChannelOutboundHandler

@Sharable public class ByteArrayEncoder extends MessageToMessageEncoder<byte[]>
Encodes the requested array of bytes into a ByteBuf. A typical setup for TCP/IP would be:
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());
and then you can use an array of bytes instead of a ByteBuf as a message:
void channelRead(ChannelHandlerContext ctx, byte[] bytes) {
    ...
}
  • Constructor Details

    • ByteArrayEncoder

      public ByteArrayEncoder()
  • Method Details

    • encode

      protected void encode(ChannelHandlerContext ctx, byte[] msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
      Description copied from class: MessageToMessageEncoder
      Encode from one message to an other. This method will be called for each written message that can be handled by this encoder.
      Specified by:
      encode in class MessageToMessageEncoder<byte[]>
      Parameters:
      ctx - the ChannelHandlerContext which this MessageToMessageEncoder belongs to
      msg - the message to encode to an other one
      out - the List into which the encoded msg should be added needs to do some kind of aggregation
      Throws:
      java.lang.Exception - is thrown if an error occurs