
Untitled
By: a guest on
May 9th, 2012 | syntax:
None | size: 1.06 KB | hits: 18 | expires: Never
getting binary data after you set StringDecoder as pipeline decoder
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("encoder", new StringEncoder());
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
// Save data received from the server.
Object msg = e.getMessage();
byte[] rawdata = new byte[((ChannelBuffer)msg).readableBytes()];
((ChannelBuffer)msg).getBytes(0, rawdata);
tmpTarFile.write(rawdata);
}
ChannelBuffer databuffer = ChannelBuffers.buffer(blobstream.size());
databuffer.writeBytes(blobstream.toByteArray());
e.getChannel().write(databuffer);
public class FlexibleStringDecoder extends StringDecoder {
@Override
protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception {
if (decodeToString(msg)) {
return super.decode(ctx, channel, msg);
}
return msg;
}
public boolean decodeToString(Object msg) {
// Add some logic here....
return true;
}
}