Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: None  |  size: 1.06 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. getting binary data after you set StringDecoder as pipeline decoder
  2. pipeline.addLast("decoder", new StringDecoder());
  3.     pipeline.addLast("encoder", new StringEncoder());
  4.        
  5. public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
  6.       // Save data received from the server.
  7.       Object msg = e.getMessage();
  8.       byte[] rawdata = new byte[((ChannelBuffer)msg).readableBytes()];
  9.       ((ChannelBuffer)msg).getBytes(0, rawdata);
  10.       tmpTarFile.write(rawdata);
  11.     }
  12.        
  13. ChannelBuffer databuffer = ChannelBuffers.buffer(blobstream.size());
  14.         databuffer.writeBytes(blobstream.toByteArray());
  15.         e.getChannel().write(databuffer);
  16.        
  17. public class FlexibleStringDecoder extends StringDecoder {
  18.  
  19.     @Override
  20.     protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception {
  21.         if (decodeToString(msg)) {
  22.             return super.decode(ctx, channel, msg);
  23.         }
  24.         return msg;
  25.     }
  26.  
  27.     public boolean decodeToString(Object msg) {
  28.         // Add some logic here....
  29.         return true;
  30.     }
  31.  
  32. }