static void autoAddHttpExtractor(NettyContext c, String name, ChannelHandler handler){ if (handler instanceof ByteToMessageDecoder || handler instanceof ByteToMessageCodec || handler instanceof CombinedChannelDuplexHandler) { String extractorName = name+"$extractor"; if(c.channel().pipeline().context(extractorName) != null){ return; } c.channel().pipeline().addBefore(name, extractorName, HTTP_EXTRACTOR); if(NettyContext.isPersistent(c.channel())){ c.onClose(() -> c.removeHandler(extractorName)); } } }
protected void addMessageHandlers(@Nonnull ChannelPipeline pipeline, @Nonnull PeerMessageListener listener) { pipeline.addLast(new CombinedChannelDuplexHandler(new PeerFrameDecoder(), frameEncoder)); // pipeline.addLast(getFrameLogger()); pipeline.addLast(new PeerMessageCodec()); // pipeline.addLast(getMessageLogger()); pipeline.addLast(new PeerMessageHandler(listener)); }
private CombinedChannelDuplexHandler<ChicagoResponseDecoder, ChicagoRequestEncoder> newMessageHandler() { return new CombinedChannelDuplexHandler<ChicagoResponseDecoder, ChicagoRequestEncoder>( new ChicagoResponseDecoder(), new ChicagoRequestEncoder() ); }
private CombinedChannelDuplexHandler<Murmur3HashedFrameDecoder, Murmur3HashedFrameEncoder> newMurmur3HashHandler() { return new CombinedChannelDuplexHandler<Murmur3HashedFrameDecoder, Murmur3HashedFrameEncoder>( new Murmur3HashedFrameDecoder(), new Murmur3HashedFrameEncoder() ); }
private CombinedChannelDuplexHandler<LengthFieldBasedFrameDecoder, LengthFieldPrepender> newLengthFieldBasedFrameHandler() { return new CombinedChannelDuplexHandler<LengthFieldBasedFrameDecoder, LengthFieldPrepender>( new LengthFieldBasedFrameDecoder(65535, 0, 2, 0, 2), new LengthFieldPrepender(2) ); }