@ChannelHandler.Sharable public class StringEncoder extends MessageToMessageEncoder<String,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,
String msg) |
boolean |
isEncodable(Object msg)
Returns
true if and only if the specified message can be encoded by this encoder. |
flush
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 boolean isEncodable(Object msg) throws Exception
MessageToMessageEncoder
true
if and only if the specified message can be encoded by this encoder.isEncodable
in class MessageToMessageEncoder<String,io.netty.buffer.ByteBuf>
msg
- the messageException
Copyright © 2008-2012 The Netty Project. All Rights Reserved.