@ChannelHandler.Sharable public class StringDecoder extends OneToOneDecoder
ChannelBuffer
into a String
. Please
note that this decoder must be used with a proper FrameDecoder
such as DelimiterBasedFrameDecoder
if you are using a stream-based
transport such as TCP/IP. 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
(80,Delimiters.lineDelimiter()
)); pipeline.addLast("stringDecoder", newStringDecoder
(CharsetUtil.UTF_8)); // Encoder pipeline.addLast("stringEncoder", newStringEncoder
(CharsetUtil.UTF_8));
String
instead of a ChannelBuffer
as a message:
void messageReceived(ChannelHandlerContext
ctx,MessageEvent
e) { String msg = (String) e.getMessage(); ch.write("Did you say '" + msg + "'?\n"); }
ChannelHandler.Sharable
Constructor and Description |
---|
StringDecoder()
Creates a new instance with the current system character set.
|
StringDecoder(Charset charset)
Creates a new instance with the specified character set.
|
Modifier and Type | Method and Description |
---|---|
protected Object |
decode(ChannelHandlerContext ctx,
Channel channel,
Object msg)
Transforms the specified received message into another message and return
the transformed message.
|
handleUpstream
public StringDecoder()
public StringDecoder(Charset charset)
protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception
OneToOneDecoder
null
if the received message
is supposed to be discarded.decode
in class OneToOneDecoder
Exception
Copyright © 2008-2016 The Netty Project. All Rights Reserved.