1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.example.stomp.websocket;
17
18 import io.netty.bootstrap.ServerBootstrap;
19 import io.netty.channel.ChannelFuture;
20 import io.netty.channel.ChannelFutureListener;
21 import io.netty.channel.nio.NioEventLoopGroup;
22 import io.netty.channel.socket.nio.NioServerSocketChannel;
23
24 public class StompWebSocketChatServer {
25
26 static final int PORT = Integer.parseInt(System.getProperty("port", "8080"));
27
28 public void start(final int port) throws Exception {
29 NioEventLoopGroup boosGroup = new NioEventLoopGroup(1);
30 NioEventLoopGroup workerGroup = new NioEventLoopGroup();
31 try {
32 ServerBootstrap bootstrap = new ServerBootstrap()
33 .group(boosGroup, workerGroup)
34 .channel(NioServerSocketChannel.class)
35 .childHandler(new StompWebSocketChatServerInitializer("/chat"));
36 bootstrap.bind(port).addListener(new ChannelFutureListener() {
37 @Override
38 public void operationComplete(ChannelFuture future) {
39 if (future.isSuccess()) {
40 System.out.println("Open your web browser and navigate to http://127.0.0.1:" + PORT + '/');
41 } else {
42 System.out.println("Cannot start server, follows exception " + future.cause());
43 }
44 }
45 }).channel().closeFuture().sync();
46 } finally {
47 boosGroup.shutdownGracefully();
48 workerGroup.shutdownGracefully();
49 }
50 }
51
52 public static void main(String[] args) throws Exception {
53 new StompWebSocketChatServer().start(PORT);
54 }
55 }