1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty5.testsuite.autobahn;
17
18 import io.netty5.bootstrap.ServerBootstrap;
19 import io.netty5.buffer.api.DefaultBufferAllocators;
20 import io.netty5.channel.Channel;
21 import io.netty5.channel.ChannelOption;
22 import io.netty5.channel.EventLoopGroup;
23 import io.netty5.channel.MultithreadEventLoopGroup;
24 import io.netty5.channel.nio.NioHandler;
25 import io.netty5.channel.socket.nio.NioServerSocketChannel;
26
27
28
29
30
31 public class AutobahnServer {
32
33 private final int port;
34
35 public AutobahnServer(int port) {
36 this.port = port;
37 }
38
39 public void run() throws Exception {
40 EventLoopGroup bossGroup = new MultithreadEventLoopGroup(1, NioHandler.newFactory());
41 EventLoopGroup workerGroup = new MultithreadEventLoopGroup(NioHandler.newFactory());
42 try {
43 ServerBootstrap b = new ServerBootstrap();
44 b.group(bossGroup, workerGroup)
45 .channel(NioServerSocketChannel.class)
46 .childOption(ChannelOption.BUFFER_ALLOCATOR, DefaultBufferAllocators.preferredAllocator())
47 .childHandler(new AutobahnServerInitializer());
48
49 Channel channel = b.bind(port).asStage().get();
50 System.out.println("Web Socket Server started at port " + port);
51 channel.closeFuture().asStage().sync();
52 } finally {
53 bossGroup.shutdownGracefully();
54 workerGroup.shutdownGracefully();
55 }
56 }
57
58 public static void main(String[] args) throws Exception {
59 int port;
60 if (args.length > 0) {
61 port = Integer.parseInt(args[0]);
62 } else {
63 port = 9000;
64 }
65 new AutobahnServer(port).run();
66 }
67 }