SnappyValidatingServer() { super( "snappy_validating_decoder", () -> new SnappyFrameDecoder( true ), COMPRESSION_SNAPPY_VALIDATING ); } }
/** * Initiate the Pipeline for the newly active connection. */ @Override protected void initChannel(C ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); // IN pipeline.addLast("decompressor", new SnappyFrameDecoder()); pipeline.addLast("decoder", new MessageDecoder(handler.component)); pipeline.addLast("handler", handler); //pipeline.addBefore("handler", "handlerLogger", new LoggingHandler("handlerLogger")); //pipeline.addBefore("handler", "decoder", new MessageDecoder()); //pipeline.addBefore("decoder", "decoderLogger", new LoggingHandler("decoderLogger")); //pipeline.addBefore("decoderLogger", "deframer", new LengthFieldBasedFrameDecoder(65532, 0, 2)); //2^16 - 2bytes for the length header (snappy wants to more than 65536 bytes uncompressed) //pipeline.addBefore("deframer", "deframerLogger", new LoggingHandler("deframerLogger")); //pipeline.addBefore("decoder", "decompressor", new SnappyFramedDecoder()); // OUT pipeline.addLast("compressor", new SnappyFrameEncoder()); pipeline.addLast("encoder", new MessageEncoder(handler.component)); //pipeline.addAfter("encoder", "encoderLogger", new LoggingHandler("encoderLogger")); //pipeline.addAfter("encoderLogger", "framer", new LengthFieldPrepender(2)); //pipeline.addAfter("framer", "framerLogger", new LoggingHandler("framerLogger")); //pipeline.addAfter("encoder", "compressor", new SnappyFramedEncoder()); } }
@Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); if (secure) { p.addLast(SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build().newHandler(ch.alloc())); } p.addLast(new ReadTimeoutHandler(readTimeoutMs, TimeUnit.MILLISECONDS)); // Decoders p.addLast(new SnappyFrameDecoder(true)); // The frame length limits the chunk size to max. 2.2GB p.addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE, 0, 4)); p.addLast(new ResponseDecoder(spoolFolder)); // Encoders p.addLast(new StringEncoder(CharsetUtil.UTF_8)); p.addLast(new GetHeadRequestEncoder()); p.addLast(new GetSegmentRequestEncoder()); p.addLast(new GetBlobRequestEncoder()); p.addLast(new GetReferencesRequestEncoder()); // Handlers p.addLast(new GetHeadResponseHandler(headQueue)); p.addLast(new GetSegmentResponseHandler(segmentQueue)); p.addLast(new GetBlobResponseHandler(blobQueue)); p.addLast(new GetReferencesResponseHandler(referencesQueue)); // Exception handler p.addLast(new ExceptionHandler(clientId)); }