Java tutorial
/* * Copyright 2014 Jon Bonazza * * Jon Bonazza licenses this file to you under the Apache License, version * 2.0 (the "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.github.jonbonazza.puni.core; import com.github.jonbonazza.puni.core.handlers.RequestHandler; import com.github.jonbonazza.puni.core.mux.Muxer; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpServerCodec; import io.netty.handler.ssl.SslContext; class HttpInitializer extends ChannelInitializer<SocketChannel> { private SslContext sslContext; private Muxer muxer; public HttpInitializer(SslContext sslContext, Muxer muxer) { this.sslContext = sslContext; this.muxer = muxer; } @Override protected void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); if (sslContext != null) pipeline.addLast(sslContext.newHandler(ch.alloc())); pipeline.addLast(new HttpServerCodec()); pipeline.addLast(new HttpObjectAggregator(65536)); pipeline.addLast(new RequestHandler(muxer)); } }