String and encode it into a ByteBuf.
A typical setup for a text-based line protocol in a TCP/IP socket would be:
and then you can use aChannelPipelinepipeline = ...; // Decoders pipeline.addLast("frameDecoder", newLineBasedFrameDecoder(80)); pipeline.addLast("stringDecoder", newStringDecoder(CharsetUtil.UTF_8)); // Encoder pipeline.addLast("lineEncoder", newLineEncoder(LineSeparator.UNIX, CharsetUtil.UTF_8));
String instead of a ByteBuf
as a message:
void channelRead(ChannelHandlerContextctx,Stringmsg) { ch.write("Did you say '" + msg + "'?"); }
| Modifier and Type | Field and Description |
|---|---|
| private final Charset | |
| private final byte[] |
| Access | Constructor and Description |
|---|---|
| public | LineEncoder()
Creates a new instance with the current system line separator and UTF-8 charset encoding. |
| public | LineEncoder(LineSeparator lineSeparator)
Creates a new instance with the specified line separator and UTF-8 charset encoding. |
| public | |
| public | LineEncoder(LineSeparator lineSeparator, Charset charset)
Creates a new instance with the specified line separator and character set. |
| Modifier and Type | Method and Description |
|---|---|
| protected void | encode(ChannelHandlerContext
the ctx, CharSequence ChannelHandlerContext which this MessageToMessageEncoder belongs tothe message to encode to an other one msg, List<Object> the out)List into which the encoded msg should be added
needs to do some kind of aggregationImplements abstract io. |
| charset | back to summary |
|---|---|
| private final Charset charset | |
| lineSeparator | back to summary |
|---|---|
| private final byte[] lineSeparator | |
| LineEncoder | back to summary |
|---|---|
| public LineEncoder() Creates a new instance with the current system line separator and UTF-8 charset encoding. | |
| LineEncoder | back to summary |
|---|---|
| public LineEncoder(LineSeparator lineSeparator) Creates a new instance with the specified line separator and UTF-8 charset encoding. | |
| LineEncoder | back to summary |
|---|---|
| public LineEncoder(Charset charset) Creates a new instance with the specified character set. | |
| LineEncoder | back to summary |
|---|---|
| public LineEncoder(LineSeparator lineSeparator, Charset charset) Creates a new instance with the specified line separator and character set. | |
| encode | back to summary |
|---|---|
| protected void encode(ChannelHandlerContext ctx, CharSequence msg, List<Object> out) throws Exception Implements abstract io. Doc from io. Encode from one message to an other. This method will be called for each written message that can be handled by this encoder.
| |