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());
}
}
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);
}
}
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());
}
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());
}
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();
}
}
Aggregations