예제 #1
0
 public void connect() throws IOException {
   NioSocketAcceptor acceptor = new NioSocketAcceptor();
   SocketSessionConfig config = acceptor.getSessionConfig();
   // config.setKeepAlive(true);
   // config.setReuseAddress(true);
   // config.setTcpNoDelay(true);
   config.setMinReadBufferSize(1024 * 10); // 10k
   config.setMaxReadBufferSize(1024 * 1024 * 10); // 10M
   acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(codecFactory));
   // config.setUseReadOperation(true);
   if (filters != null && !filters.isEmpty()) {
     for (String key : filters.keySet()) acceptor.getFilterChain().addLast(key, filters.get(key));
   }
   acceptor.setHandler(handler);
   InetSocketAddress address = new InetSocketAddress(serverPort);
   acceptor.bind(address);
   logger.info("server start success,serverPort:" + address);
 }
예제 #2
0
파일: HttpUCWeb.java 프로젝트: totwo/tgyh
  public void RunHttp() {
    int port = DEFAULT_PORT;
    try {
      // Create an acceptor
      NioSocketAcceptor acceptor = new NioSocketAcceptor();

      // Create a service configuration
      acceptor
          .getFilterChain()
          .addLast("protocolFilter", new ProtocolCodecFilter(new HttpServerProtocolCodecFactory()));
      acceptor.getFilterChain().addLast("logger", new LoggingFilter());
      acceptor.setHandler(new HttpUCWebHandler());
      acceptor.bind(new InetSocketAddress(port));

      System.out.println("Server now listening uc on port " + port);
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
예제 #3
0
 @Before
 public void setUp() throws Exception {
   acceptor = new NioSocketAcceptor();
   KeepAliveMessageFactory factory = new ServerFactory();
   KeepAliveFilter filter = new KeepAliveFilter(factory, IdleStatus.BOTH_IDLE);
   acceptor.getFilterChain().addLast("keep-alive", filter);
   acceptor.setHandler(new IoHandlerAdapter());
   acceptor.setDefaultLocalAddress(new InetSocketAddress(0));
   acceptor.bind();
   port = acceptor.getLocalAddress().getPort();
 }
예제 #4
0
  @Override
  protected void startService() throws Exception {
    if (port == 0) {
      throw new ConfigurationException("Port value not set");
    }
    socketAddress = new InetSocketAddress(port);
    newCodecFactory();
    addListeners();

    acceptor = new NioSocketAcceptor();
    acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(codecFactory));

    if (timeout == -1) {
      keepAliveHandler = newKeepAliveHandler();
      if (keepAliveHandler != null) {
        KeepAliveFilter kaf =
            new KeepAliveFilter(
                keepAliveHandler.getKeepAliveMessageFactory(),
                IdleStatus.READER_IDLE,
                keepAliveHandler.getKeepAliveRequestTimeoutHandler(),
                keepAliveHandler.getRequestInterval(),
                keepAliveHandler.getRequestTimeout());

        acceptor.getFilterChain().addLast("keepalive", kaf);
      }
    } else if (timeout > 0) {
      acceptor.getSessionConfig().setIdleTime(IdleStatus.READER_IDLE, timeout);
    }
    acceptor.setBacklog(100);
    acceptor.setReuseAddress(true);
    acceptor.setDefaultLocalAddress(socketAddress);
    acceptor.setHandler(this);
    acceptor.getSessionConfig().setReadBufferSize(2048);
    preBindAcceptorHook(acceptor);
    acceptor.bind();
  }
예제 #5
0
  public void start(final String transCode) throws IOException {
    acceptor = new NioSocketAcceptor();
    DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
    chain.addLast("logger", new LoggingFilter());

    DefaultMessageCodecFactory messageCodecFactory = createMessageCodecFactory();

    DefaultProtocolCodecFactory protocolCodecFactory = new DefaultProtocolCodecFactory();
    DefaultProtocolDecoder protocolDecoder = new DefaultProtocolDecoder();
    protocolDecoder.setMessageCodecFactory(messageCodecFactory);
    protocolCodecFactory.setProtocolDecoder(protocolDecoder);

    DefaultProtocolEncoder encoder = new DefaultProtocolEncoder();
    encoder.setMessageCodecFactory(messageCodecFactory);

    protocolCodecFactory.setProtocolEncoder(encoder);

    chain.addLast("protocol", new ProtocolCodecFilter(protocolCodecFactory));
    acceptor.setHandler(
        new IoHandlerAdapter() {

          @Override
          public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
            logger.error("error.", cause);
            session.close(false);
          }

          @Override
          public void messageReceived(IoSession session, Object message) throws Exception {
            logger.info("handler get message:" + message);

            System.out.println("handler get message:" + message);

            session.write(createResponse(transCode));
            session.close(false);
          }
        });
    // new ProtocolIoHandler()
    // acceptor.setHandler((ProtocolIoHandler)beanFactory.getBean("protocolIoHandler"));
    acceptor.bind(new InetSocketAddress(port));
  }