Package com.github.diamond.netty

Source Code of com.github.diamond.netty.DiamondServer

/**       
* Copyright (c) 2013 by 苏州科大国创信息技术有限公司.   
*/   
package com.github.diamond.netty;

import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

/**
* Create on @2013-8-24 @上午10:03:59
* @author bsli@ustcinfo.com
*/
public class DiamondServer implements InitializingBean, DisposableBean {
 
  private static final Logger logger = LoggerFactory.getLogger(DiamondServer.class);
 
  private int port = 8283;
 
  private EventLoopGroup bossGroup = new NioEventLoopGroup(1);
 
  private EventLoopGroup workerGroup = new NioEventLoopGroup();
 
  private DiamondServerHandler serverHandler;

  @Override
  public void afterPropertiesSet() throws Exception {
        ServerBootstrap b = new ServerBootstrap();
        b.group(bossGroup, workerGroup)
          .channel(NioServerSocketChannel.class)
          .option(ChannelOption.SO_BACKLOG, 1024)
          .option(ChannelOption.SO_REUSEADDR, true)
          .childHandler(new DiamondServerInitializer(serverHandler));
       
        b.bind("0.0.0.0", port).sync().channel();
        logger.info("启动 Diamond Netty Server, post={}", port);
  }

  @Override
  public void destroy() throws Exception {
    if(bossGroup != null)
      bossGroup.shutdownGracefully();
   
    if(workerGroup != null)
      workerGroup.shutdownGracefully();
  }

  public int getPort() {
    return port;
  }

  public void setPort(int port) {
    this.port = port;
  }

  public DiamondServerHandler getServerHandler() {
    return serverHandler;
  }

  public void setServerHandler(DiamondServerHandler serverHandler) {
    this.serverHandler = serverHandler;
  }
}
TOP

Related Classes of com.github.diamond.netty.DiamondServer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.