@ChannelHandler.Sharable public class StringEncoder extends MessageToMessageEncoder<CharSequence,io.netty.buffer.ByteBuf>
String
into a ByteBuf
.
A typical setup for a text-based line protocol in a TCP/IP socket would be:
and then you can use aChannelPipeline
pipeline = ...; // Decoders pipeline.addLast("frameDecoder", newDelimiterBasedFrameDecoder
(Delimiters.lineDelimiter()
)); pipeline.addLast("stringDecoder", newStringDecoder
(CharsetUtil.UTF_8)); // Encoder pipeline.addLast("stringEncoder", newStringEncoder
(CharsetUtil.UTF_8));
String
instead of a ByteBuf
as a message:
void messageReceived(ChannelHandlerContext
ctx,MessageEvent
e) { String msg = (String) e.getMessage(); ch.write("Did you say '" + msg + "'?\n"); }
Constructor and Description |
---|
StringEncoder()
Creates a new instance with the current system character set.
|
StringEncoder(Charset charset)
Creates a new instance with the specified character set.
|
Modifier and Type | Method and Description |
---|---|
io.netty.buffer.ByteBuf |
encode(io.netty.channel.ChannelHandlerContext ctx,
CharSequence msg) |
flush, isEncodable
newOutboundBuffer
afterAdd, afterRemove, beforeAdd, beforeRemove, bind, close, connect, deregister, disconnect, exceptionCaught, userEventTriggered
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public StringEncoder()
public StringEncoder(Charset charset)
public io.netty.buffer.ByteBuf encode(io.netty.channel.ChannelHandlerContext ctx, CharSequence msg) throws Exception
encode
in class MessageToMessageEncoder<CharSequence,io.netty.buffer.ByteBuf>
Exception
Copyright © 2008-2012 The Netty Project. All Rights Reserved.