String and encode it into a Buffer.
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 Buffer
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[] | |
| private static final InternalLogger |
| 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 to.the message to encode to another one. msg, List<Object> the out)List into which produced output messages should be added.Overrides io. |
| public boolean | isSharable()
Overrides default io. true if this handler is sharable and thus can be added
to more than one ChannelPipeline.
|
| charset | back to summary |
|---|---|
| private final Charset charset | |
| lineSeparator | back to summary |
|---|---|
| private final byte[] lineSeparator | |
| logger | back to summary |
|---|---|
| private static final InternalLogger logger | |
| 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 Overrides io. Doc from io. Encode from one message to another. This method will be called for each written message that can be handled by this encoder. The message will be disposed of after this call.
Subclasses that wish to sometimes pass messages through, should instead override the
| |
| isSharable | back to summary |
|---|---|
| public boolean isSharable() Overrides default io. Doc from io. Returns
| |