1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.http.websocketx.server;
17
18 import org.jboss.netty.channel.ChannelPipeline;
19 import org.jboss.netty.channel.ChannelPipelineFactory;
20 import org.jboss.netty.channel.Channels;
21 import org.jboss.netty.handler.codec.http.HttpChunkAggregator;
22 import org.jboss.netty.handler.codec.http.HttpRequestDecoder;
23 import org.jboss.netty.handler.codec.http.HttpResponseEncoder;
24 import org.jboss.netty.handler.ssl.SslContext;
25
26
27
28 public class WebSocketServerPipelineFactory implements ChannelPipelineFactory {
29
30 private final SslContext sslCtx;
31
32 public WebSocketServerPipelineFactory(SslContext sslCtx) {
33 this.sslCtx = sslCtx;
34 }
35
36 public ChannelPipeline getPipeline() {
37 ChannelPipeline pipeline = Channels.pipeline();
38 if (sslCtx != null) {
39 pipeline.addLast("ssl", sslCtx.newHandler());
40 }
41 pipeline.addLast("decoder", new HttpRequestDecoder());
42 pipeline.addLast("aggregator", new HttpChunkAggregator(65536));
43 pipeline.addLast("encoder", new HttpResponseEncoder());
44 pipeline.addLast("handler", new WebSocketServerHandler());
45 return pipeline;
46 }
47 }