@Override public WebSocketHandler setupPipeline(ChannelPipeline p, ChannelHandlerContext ctx) { //WebSocketHandler is stateful so must do an instance per request/channel WebSocketHandler h = new WebSocketHandler(config); p.addLast("ws-decoder", new HttpRequestDecoder(config)); p.addLast("ws-aggregator", new HttpObjectAggregator(65536)); p.addLast("ws-encoder", new HttpResponseEncoder()); p.addLast("ws-chunkedWriter", new ChunkedWriteHandler()); p.addLast("ws-handler", h); return h; } }
@Override public WebSocketHandler setupPipeline(ChannelPipeline p, ChannelHandlerContext ctx) { //WebSocketHandler is stateful so must do an instance per request/channel WebSocketHandler h = new WebSocketHandler(config); p.addLast("ws-decoder", new HttpRequestDecoder(config)); p.addLast("ws-aggregator", new HttpObjectAggregator(65536)); p.addLast("ws-encoder", new HttpResponseEncoder()); p.addLast("ws-chunkedWriter", new ChunkedWriteHandler()); p.addLast("ws-handler", h); return h; } }
@Override public HttpHandler setupPipeline(ChannelPipeline p, ChannelHandlerContext ctx) { //HttpHandler is stateful so must do an instance per request/channel HttpHandler h = new HttpHandler(config); p.addLast("decoder", new HttpRequestDecoder(config)); p.addLast("encoder", new HttpResponseEncoder()); p.addLast("chunkedWriter", new ChunkedWriteHandler()); //ByteBufToHttpContent must come before compressor and after chunked writer to support //compressing chunked files // p.addLast("ByteBufToHttpContent", new MessageToMessageEncoder<ByteBuf>() { // @Override // protected void encode(ChannelHandlerContext ctx, ByteBuf msg, MessageBuf<Object> out) throws Exception { // out.add(new DefaultHttpContent(msg.retain())); // } // }); // p.addLast("deflater", new HttpContentCompressor()); p.addLast("handler", h); return h; } }