首页 新闻 会员 周边

netty5.0

0
悬赏园豆:20 [待解决问题]

一个简单的netty socket服务端。

我是在web项目里面启动netty的

如何在web容器关闭的时候 关闭netty呢。

就是说关闭方法怎么写呢。

 

public static void start(int port) throws InterruptedException {
        try {

            sb.option(ChannelOption.SO_BACKLOG, 1024);
            sb.group(bossGroup, workerGroup)
                    .channel(NioServerSocketChannel.class)
                    .handler(new LoggingHandler(LogLevel.INFO))
                    .childHandler(new ChannelInitializer<SocketChannel>() {
                        @Override
                        protected void initChannel(SocketChannel ch) throws Exception {
                            ChannelPipeline p = ch.pipeline();
                            p.addLast("decoder", new StringDecoder(CharsetUtil.UTF_8));
                           // p.addLast("encoder", new StringEncoder(CharsetUtil.UTF_8));
                            p.addLast(new NettyServerHandler());
                        }

                    });
            Channel ch = sb.bind(port).sync().channel();
            log.info("server 127.0.0.1:" + port + " is starting");
            ch.closeFuture().addListener(new WebSocketListener()).sync();
        }finally {
            bossGroup.shutdownGracefully();
            workerGroup.shutdownGracefully();
        }
    }
我的田俊的主页 我的田俊 | 初学一级 | 园豆:182
提问于:2015-11-03 18:04
< >
分享
所有回答(1)
0

在定义一个ServletContextListener, 

在contextDestroyed中调用

{

  bossGroup.shutdownGracefully();

     workerGroup.shutdownGracefully();

}

乐享程序员 | 园豆:930 (小虾三级) | 2015-11-07 12:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册