Search in sources :

Example 61 with HttpServerCodec

use of io.netty.handler.codec.http.HttpServerCodec in project flink by apache.

the class RedirectingSslHandler method decode.

@Override
protected void decode(ChannelHandlerContext context, ByteBuf in, List<Object> out) {
    if (in.readableBytes() >= SSL_RECORD_HEADER_LENGTH && SslHandler.isEncrypted(in)) {
        handleSsl(context);
    } else {
        context.pipeline().replace(this, HTTP_CODEC_HANDLER_NAME, new HttpServerCodec());
        context.pipeline().addAfter(HTTP_CODEC_HANDLER_NAME, NON_SSL_HANDLER_NAME, new NonSslHandler());
    }
}
Also used : HttpServerCodec(org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpServerCodec)

Example 62 with HttpServerCodec

use of io.netty.handler.codec.http.HttpServerCodec in project blade by biezhi.

the class HttpServerInitializer method initChannel.

@Override
protected void initChannel(SocketChannel ch) {
    ChannelPipeline pipeline = ch.pipeline();
    try {
        if (sslCtx != null) {
            pipeline.addLast(sslCtx.newHandler(ch.alloc()));
        }
        pipeline.addLast(new HttpServerCodec());
        pipeline.addLast(new HttpServerExpectContinueHandler());
        if (useGZIP) {
            pipeline.addLast(new HttpContentCompressor());
        }
        if (isWebSocket) {
            pipeline.addLast(new WebSocketHandler(blade));
        }
        pipeline.addLast(new MergeRequestHandler());
        pipeline.addLast(httpServerHandler);
    } catch (Exception e) {
        log.error("Add channel pipeline error", e);
    }
}
Also used : HttpContentCompressor(io.netty.handler.codec.http.HttpContentCompressor) HttpServerCodec(io.netty.handler.codec.http.HttpServerCodec) HttpServerExpectContinueHandler(io.netty.handler.codec.http.HttpServerExpectContinueHandler) ChannelPipeline(io.netty.channel.ChannelPipeline)

Example 63 with HttpServerCodec

use of io.netty.handler.codec.http.HttpServerCodec in project benchmark by seelunzi.

the class ChildChannelHandler method initChannel.

@Override
protected void initChannel(SocketChannel e) throws Exception {
    // 设置30秒没有读到数据,则触发一个READER_IDLE事件。
    // pipeline.addLast(new IdleStateHandler(30, 0, 0));
    // HttpServerCodec:将请求和应答消息解码为HTTP消息
    e.pipeline().addLast("http-codec", new HttpServerCodec());
    // HttpObjectAggregator:将HTTP消息的多个部分合成一条完整的HTTP消息
    e.pipeline().addLast("aggregator", new HttpObjectAggregator(65536));
    // ChunkedWriteHandler:向客户端发送HTML5文件
    e.pipeline().addLast("http-chunked", new ChunkedWriteHandler());
    // 在管道中添加我们自己的接收数据实现方法
    e.pipeline().addLast("handler", new MyWebSocketServerHandler());
}
Also used : HttpObjectAggregator(io.netty.handler.codec.http.HttpObjectAggregator) ChunkedWriteHandler(io.netty.handler.stream.ChunkedWriteHandler) HttpServerCodec(io.netty.handler.codec.http.HttpServerCodec)

Example 64 with HttpServerCodec

use of io.netty.handler.codec.http.HttpServerCodec in project benchmark by seelunzi.

the class WebsocketChatServerInitializer method initChannel.

@Override
public void initChannel(SocketChannel ch) throws Exception {
    // 2
    ChannelPipeline pipeline = ch.pipeline();
    pipeline.addLast(new HttpServerCodec());
    pipeline.addLast(new HttpObjectAggregator(64 * 1024));
    pipeline.addLast(new ChunkedWriteHandler());
    pipeline.addLast(new HttpRequestHandler("/ws"));
    pipeline.addLast(new WebSocketServerProtocolHandler("/ws"));
    pipeline.addLast(new TextWebSocketFrameHandler());
}
Also used : HttpObjectAggregator(io.netty.handler.codec.http.HttpObjectAggregator) ChunkedWriteHandler(io.netty.handler.stream.ChunkedWriteHandler) HttpServerCodec(io.netty.handler.codec.http.HttpServerCodec) WebSocketServerProtocolHandler(io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler) ChannelPipeline(io.netty.channel.ChannelPipeline)

Example 65 with HttpServerCodec

use of io.netty.handler.codec.http.HttpServerCodec in project proxyee-down by monkeyWie.

the class EmbedHttpServer method start.

public void start(GenericFutureListener startedListener) {
    NioEventLoopGroup bossGroup = new NioEventLoopGroup(2);
    NioEventLoopGroup workGroup = new NioEventLoopGroup(2);
    try {
        ServerBootstrap bootstrap = new ServerBootstrap().group(bossGroup, workGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<Channel>() {

            @Override
            protected void initChannel(Channel ch) throws Exception {
                ch.pipeline().addLast("httpCodec", new HttpServerCodec());
                ch.pipeline().addLast(new HttpObjectAggregator(4194304));
                ch.pipeline().addLast("serverHandle", new SimpleChannelInboundHandler<FullHttpRequest>() {

                    @Override
                    protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception {
                        URI uri = new URI(request.uri());
                        FullHttpResponse httpResponse = invoke(uri.getPath(), ctx.channel(), request);
                        if (httpResponse != null) {
                            httpResponse.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE);
                            httpResponse.headers().set(HttpHeaderNames.CONTENT_LENGTH, httpResponse.content().readableBytes());
                            ch.writeAndFlush(httpResponse);
                        }
                    }

                    @Override
                    public void channelUnregistered(ChannelHandlerContext ctx) {
                        ctx.channel().close();
                    }

                    @Override
                    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
                        LOGGER.error("native request error", cause.getCause() == null ? cause : cause.getCause());
                        Map<String, Object> data = new HashMap<>();
                        data.put("error", cause.getCause().toString());
                        FullHttpResponse httpResponse = HttpHandlerUtil.buildJson(data);
                        httpResponse.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
                        ctx.channel().writeAndFlush(httpResponse);
                    }
                });
            }
        });
        ChannelFuture f = bootstrap.bind("127.0.0.1", port).sync();
        if (startedListener != null) {
            f.addListener(startedListener);
        }
        f.channel().closeFuture().sync();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        bossGroup.shutdownGracefully();
        workGroup.shutdownGracefully();
    }
}
Also used : SimpleChannelInboundHandler(io.netty.channel.SimpleChannelInboundHandler) ChannelFuture(io.netty.channel.ChannelFuture) NioServerSocketChannel(io.netty.channel.socket.nio.NioServerSocketChannel) FullHttpRequest(io.netty.handler.codec.http.FullHttpRequest) HashMap(java.util.HashMap) NioServerSocketChannel(io.netty.channel.socket.nio.NioServerSocketChannel) Channel(io.netty.channel.Channel) ChannelHandlerContext(io.netty.channel.ChannelHandlerContext) URI(java.net.URI) ServerBootstrap(io.netty.bootstrap.ServerBootstrap) HttpObjectAggregator(io.netty.handler.codec.http.HttpObjectAggregator) HttpServerCodec(io.netty.handler.codec.http.HttpServerCodec) FullHttpResponse(io.netty.handler.codec.http.FullHttpResponse) NioEventLoopGroup(io.netty.channel.nio.NioEventLoopGroup)

Aggregations

HttpServerCodec (io.netty.handler.codec.http.HttpServerCodec)64 ChannelPipeline (io.netty.channel.ChannelPipeline)41 HttpObjectAggregator (io.netty.handler.codec.http.HttpObjectAggregator)35 ChannelHandlerContext (io.netty.channel.ChannelHandlerContext)12 ChunkedWriteHandler (io.netty.handler.stream.ChunkedWriteHandler)12 HttpServerUpgradeHandler (io.netty.handler.codec.http.HttpServerUpgradeHandler)11 Test (org.junit.Test)11 ServerBootstrap (io.netty.bootstrap.ServerBootstrap)10 ChannelHandler (io.netty.channel.ChannelHandler)10 NioServerSocketChannel (io.netty.channel.socket.nio.NioServerSocketChannel)9 Channel (io.netty.channel.Channel)8 NioEventLoopGroup (io.netty.channel.nio.NioEventLoopGroup)8 WebSocketServerProtocolHandler (io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler)7 IdleStateHandler (io.netty.handler.timeout.IdleStateHandler)7 ChannelDuplexHandler (io.netty.channel.ChannelDuplexHandler)6 ChannelHandlerAdapter (io.netty.channel.ChannelHandlerAdapter)6 EmbeddedChannel (io.netty.channel.embedded.EmbeddedChannel)6 SocketChannel (io.netty.channel.socket.SocketChannel)6 LineBasedFrameDecoder (io.netty.handler.codec.LineBasedFrameDecoder)6 HttpContentCompressor (io.netty.handler.codec.http.HttpContentCompressor)5