org.apache.mina.transport.socket.nio.NioSocketAcceptor类的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(13.2k)|赞(0)|评价(0)|浏览(204)

本文整理了Java中org.apache.mina.transport.socket.nio.NioSocketAcceptor类的一些代码示例,展示了NioSocketAcceptor类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。NioSocketAcceptor类的具体详情如下:
包路径:org.apache.mina.transport.socket.nio.NioSocketAcceptor
类名称:NioSocketAcceptor

NioSocketAcceptor介绍

[英]IoAcceptor for socket transport (TCP/IP). This class handles incoming TCP/IP based socket connections.
[中]套接字传输的IoAcceptor(TCP/IP)。此类处理传入的基于TCP/IP的套接字连接。

代码示例

代码示例来源:origin: Red5/red5-server

acceptor = new NioSocketAcceptor(ioThreads);
} else {
  acceptor = new NioSocketAcceptor(executor, pool);
    if (addr.indexOf(':') != -1) {
      String[] parts = addr.split(":");
      socketAddresses.add(new InetSocketAddress(parts[0], Integer.valueOf(parts[1])));
    } else {
      socketAddresses.add(new InetSocketAddress(addr, 1935));

代码示例来源:origin: apache/flume

acceptor = new NioSocketAcceptor(numProcessors);
} else {
 acceptor = new NioSocketAcceptor();
 filter.setEnabledProtocols(getFilteredProtocols(sslParameters));
 filter.setEnabledCipherSuites(getFilteredCipherSuites(sslParameters));
 acceptor.getFilterChain().addFirst("ssl", filter);
});
acceptor.setReuseAddress(true);
acceptor.getSessionConfig().setReadBufferSize(readBufferSize);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
acceptor.setHandler(new MultiportSyslogHandler(maxEventSize, batchSize,
  getChannelProcessor(), sourceCounter, portHeader, clientIPHeader,
  clientHostnameHeader, defaultDecoder, portCharsets, keepFields));
 InetSocketAddress addr;
 if (host != null) {
  addr = new InetSocketAddress(host, port);
 } else {
  addr = new InetSocketAddress(port);
  acceptor.bind(addr);
 } catch (IOException ex) {
  logger.error("Could not bind to address: " + String.valueOf(addr), ex);

代码示例来源:origin: igniterealtime/Openfire

private static NioSocketAcceptor buildSocketAcceptor()
{
  // Create SocketAcceptor with correct number of processors
  final int processorCount = JiveGlobals.getIntProperty( "xmpp.processor.count", Runtime.getRuntime().availableProcessors() );
  final NioSocketAcceptor socketAcceptor = new NioSocketAcceptor( processorCount );
  // Set that it will be possible to bind a socket if there is a connection in the timeout state.
  socketAcceptor.setReuseAddress( true );
  // Set the listen backlog (queue) length. Default is 50.
  socketAcceptor.setBacklog( JiveGlobals.getIntProperty( "xmpp.socket.backlog", 50 ) );
  // Set default (low level) settings for new socket connections
  final SocketSessionConfig socketSessionConfig = socketAcceptor.getSessionConfig();
  //socketSessionConfig.setKeepAlive();
  final int receiveBuffer = JiveGlobals.getIntProperty( "xmpp.socket.buffer.receive", -1 );
  if ( receiveBuffer > 0 )
  {
    socketSessionConfig.setReceiveBufferSize( receiveBuffer );
  }
  final int sendBuffer = JiveGlobals.getIntProperty( "xmpp.socket.buffer.send", -1 );
  if ( sendBuffer > 0 )
  {
    socketSessionConfig.setSendBufferSize( sendBuffer );
  }
  final int linger = JiveGlobals.getIntProperty( "xmpp.socket.linger", -1 );
  if ( linger > 0 )
  {
    socketSessionConfig.setSoLinger( linger );
  }
  socketSessionConfig.setTcpNoDelay( JiveGlobals.getBooleanProperty( "xmpp.socket.tcp-nodelay", socketSessionConfig.isTcpNoDelay() ) );
  return socketAcceptor;
}

代码示例来源:origin: igniterealtime/Openfire

final DefaultIoFilterChainBuilder filterChain = socketAcceptor.getFilterChain();
filterChain.addFirst( ConnectionManagerImpl.EXECUTOR_FILTER_NAME, executorFilter );
  socketAcceptor.getSessionConfig().setMaxReadBufferSize( configuration.getMaxBufferSize() );
  Log.debug( "Throttling read buffer for connections to max={} bytes", configuration.getMaxBufferSize() );
socketAcceptor.setHandler( connectionHandler );
socketAcceptor.bind( new InetSocketAddress( configuration.getBindAddress(), configuration.getPort() ) );
    socketAcceptor.unbind();
  } finally {
    socketAcceptor = null;

代码示例来源:origin: io.termd/termd-core

sshPort = sshd.getPort();
NioSocketAcceptor acceptor = new NioSocketAcceptor();
acceptor.setHandler(new IoHandlerAdapter() {
  @Override
  public void messageReceived(IoSession session, Object message) throws Exception {
acceptor.setReuseAddress(true);
acceptor.bind(new InetSocketAddress(0));
echoPort = acceptor.getLocalAddress().getPort();
this.acceptor = acceptor;

代码示例来源:origin: org.apache.vysper/vysper-core

public void start() throws IOException {
  NioSocketAcceptor acceptor = new NioSocketAcceptor();
  DefaultIoFilterChainBuilder filterChainBuilder = new DefaultIoFilterChainBuilder();
  //filterChainBuilder.addLast("executorFilter", new OrderedThreadPoolExecutor());
  filterChainBuilder.addLast("xmppCodec", new ProtocolCodecFilter(new XMPPProtocolCodecFactory()));
  filterChainBuilder.addLast("loggingFilter", new StanzaLoggingFilter());
  acceptor.setFilterChainBuilder(filterChainBuilder);
  XmppIoHandlerAdapter adapter = new XmppIoHandlerAdapter();
  adapter.setServerRuntimeContext(serverRuntimeContext);
  acceptor.setHandler(adapter);
  acceptor.setReuseAddress(true);
  acceptor.bind(new InetSocketAddress(port));
  this.acceptor = acceptor;
}

代码示例来源:origin: jobxhub/JobX

@Override
  public void run() {
    final MinaServerHandler serverHandler = new MinaServerHandler(handler);
    socketAddress = new InetSocketAddress(port);
    acceptor = new NioSocketAcceptor();
    acceptor.getFilterChain().addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool()));
    acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MinaCodecAdapter(Response.class, Request.class)));
    acceptor.setHandler(serverHandler);
    try {
      acceptor.bind(socketAddress);
      if (logger.isInfoEnabled()) {
        logger.info("[JobX] MinaServer start at address:{} success", port);
      }
    } catch (IOException e) {
      logger.error("[JobX] MinaServer start failure: {}", stackTrace(e));
    }
  }
});

代码示例来源:origin: OpenNMS/opennms

/**
 * <p>startServer</p>
 *
 * @throws java.lang.Exception if any.
 */
public void startServer() throws Exception {
  
  m_acceptor = new NioSocketAcceptor();
  m_acceptor.getFilterChain().addLast("logger", new LoggingFilter());
  m_acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(StandardCharsets.UTF_8)));
  
  m_acceptor.setHandler(getServerHandler());
  m_acceptor.getSessionConfig().setReadBufferSize(getBufferSize());
  m_acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, getIdleTime());
  ((NioSocketAcceptor) m_acceptor).setReuseAddress(true);
  m_acceptor.bind(new InetSocketAddress(getPort()));
  
}

代码示例来源:origin: org.apache.directory.server/apacheds-protocol-shared

/**
 * Helper method to create an IoAcceptor
 */
private IoAcceptor createAcceptor( String address, int port, int nbThreads, int backLog )
{
  NioSocketAcceptor acceptor = new NioSocketAcceptor( nbThreads );
  acceptor.setReuseAddress( true );
  acceptor.setBacklog( backLog );
  InetSocketAddress socketAddress = null;
  // The address can be null here, if one want to connect using the wildcard address
  if ( address == null )
  {
    // Create a socket listening on the wildcard address
    socketAddress = new InetSocketAddress( port );
  }
  else
  {
    socketAddress = new InetSocketAddress( address, port );
  }
  acceptor.setDefaultLocalAddress( socketAddress );
  return acceptor;
}

代码示例来源:origin: com.github.mrstampy/esp

@Override
public void bindBroadcaster() throws IOException {
  if (!canBroadcast()) {
    log.warn("AbstractMultiConnectionSocket is not broadcasting events, cannot bind broadcaster");
    return;
  }
  if (socketBroadcaster.isActive()) {
    log.warn("AbstractMultiConnectionSocket is already bound");
    return;
  }
  socketBroadcaster.bind(new InetSocketAddress(AbstractSocketConnector.BROADCASTER_PORT));
  notifyConnectionEventListeners(State.BOUND);
}

代码示例来源:origin: org.drools/drools-grid-impl

public synchronized void open(InetSocketAddress address,
               MessageReceiverHandler handler,
               SystemEventListener systemEventListener) {
  if ( logger.isInfoEnabled() ){
    logger.info("(" + Thread.currentThread().getId() + ")"+Thread.currentThread().getName() +" ### Binding a new SocketAcceptor to "+address.getHostName()+":"+address.getPort());
  }
  if ( this.acceptor == null ) {
    acceptor = new NioSocketAcceptor( 16 );
    acceptor.getFilterChain().addLast( "codec",
                      new ProtocolCodecFilter( new ObjectSerializationCodecFactory() ) );
    acceptor.getSessionConfig().setReadBufferSize( 2048 );
    acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE,
                         100 );
  }
  this.handler = handler;
  acceptor.setHandler( new MinaIoHandler( systemEventListener,
                      handler ) );
  try {
    acceptor.bind( address );
  } catch ( IOException e ) {
    throw new RuntimeException( "(" + Thread.currentThread().getId() + ")"+Thread.currentThread().getName() +"Unable to bind Mina Acceptor",
                  e );
  }
}

代码示例来源:origin: com.eas.platypus/platypus-js-server

private void initializeAndBindPlatypusAcceptor(InetSocketAddress s) throws IOException, Exception {
  //final SslFilter sslFilter = new SslFilter(sslContext); commented out until MINA Sslfilter bugs will be fixed
  ThreadPoolExecutor connectionsPollerExecutor = new ThreadPoolExecutor(1, 1,
      3L, TimeUnit.SECONDS,
      new LinkedBlockingQueue<>(),
      new PlatypusThreadFactory("nio-polling-", false));
  final IoAcceptor acceptor = new NioSocketAcceptor(connectionsPollerExecutor, new NioProcessor(executor));
  //acceptor.getFilterChain().addLast("encryption", sslFilter); commented out until MINA Sslfilter bugs will be fixed
  acceptor.getFilterChain().addLast("platypusCodec", new ProtocolCodecFilter(new ResponseEncoder(), new RequestDecoder()));
  /*
  acceptor.getFilterChain().addLast("executor", new ExecutorFilter(executor, IoEventType.EXCEPTION_CAUGHT,
      IoEventType.MESSAGE_RECEIVED, IoEventType.MESSAGE_SENT, IoEventType.SESSION_CLOSED, IoEventType.SESSION_IDLE, IoEventType.CLOSE, IoEventType.WRITE));
   */
  PlatypusRequestsHandler handler = new PlatypusRequestsHandler(this);
  acceptor.setHandler(handler);
  Integer sessionIdleTime = portsSessionIdleTimeouts != null ? portsSessionIdleTimeouts.get(s.getPort()) : null;
  if (sessionIdleTime == null || sessionIdleTime == 0) {
    sessionIdleTime = PlatypusRequestsHandler.SESSION_TIME_OUT;
  }
  Integer sessionIdleCheckInterval = portsSessionIdleCheckIntervals != null ? portsSessionIdleCheckIntervals.get(s.getPort()) : null;
  if (sessionIdleCheckInterval == null || sessionIdleCheckInterval == 0) {
    sessionIdleCheckInterval = PlatypusRequestsHandler.IDLE_TIME_EVENT;
  }
  handler.setSessionIdleCheckInterval(sessionIdleCheckInterval);
  handler.setSessionIdleTime(sessionIdleTime);
  acceptor.bind(s);
  Logger.getLogger(ServerMain.class.getName()).log(Level.INFO, "Listening platypus protocol on {0}", s.toString());
}

代码示例来源:origin: quickfix-j/quickfixj

public static IoAcceptor createIoAcceptor(int transportType) {
  if (transportType == SOCKET) {
    NioSocketAcceptor ret = new NioSocketAcceptor();
    ret.setReuseAddress(true);
    return ret;
  } else if (transportType == VM_PIPE) {
    return new VmPipeAcceptor();
  } else {
    throw new RuntimeError("Unsupported transport type: " + transportType);
  }
}

代码示例来源:origin: org.eclipse.neoscada.core/org.eclipse.scada.core.server.ngp

public ServerBase ( final Collection<InetSocketAddress> addresses, final ProtocolConfigurationFactory protocolConfigurationFactory ) throws Exception
{
  this.addresses = addresses;
  this.acceptor = new NioSocketAcceptor ();
  this.acceptor.setReuseAddress ( true );
  this.chainBuilder = new FilterChainBuilder ( false );
  this.chainBuilder.setLoggerName ( ServerBase.class.getName () + ".protocol" );
  this.acceptor.setFilterChainBuilder ( this.chainBuilder );
  this.acceptor.setHandler ( new ServerBaseHandler ( this, protocolConfigurationFactory.createConfiguration ( false ) ) );
}

代码示例来源:origin: com.github.mrstampy/esp

/**
 * Initialization of the broadcaster, to send
 * {@link AbstractMultiConnectionEvent}s to remote processes which have
 * registered for subscriptions. Invoke during object creation.
 *
 * @throws IOException Signals that an I/O exception has occurred.
 */
protected void initBroadCaster() throws IOException {
  socketBroadcaster = new NioSocketAcceptor();
  DefaultIoFilterChainBuilder chain = socketBroadcaster.getFilterChain();
  MdcInjectionFilter mdcInjectionFilter = new MdcInjectionFilter();
  chain.addLast("mdc", mdcInjectionFilter);
  if (log.isDebugEnabled()) chain.addLast("logger", new LoggingFilter());
  chain.addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
  socketBroadcaster.setHandler(getHandlerAdapter());
  socketBroadcaster.setReuseAddress(true);
  bindBroadcaster();
}

代码示例来源:origin: jzyong/game-server

/**
 * @param minaServerConfig 配置
 * @param ioHandler 消息处理器
 */
public TcpServer(MinaServerConfig minaServerConfig, IoHandler ioHandler) {
  this.minaServerConfig = minaServerConfig;
  this.ioHandler = ioHandler;
  acceptor = new NioSocketAcceptor();
}

代码示例来源:origin: org.apache.mina/mina-core

/**
 *  Constructor for {@link NioSocketAcceptor} with default configuration but a
 *  specific {@link IoProcessor}, useful for sharing the same processor over multiple
 *  {@link IoService} of the same type.
 * @param processor the processor to use for managing I/O events
 */
public NioSocketAcceptor(IoProcessor<NioSession> processor) {
  super(new DefaultSocketSessionConfig(), processor);
  ((DefaultSocketSessionConfig) getSessionConfig()).init(this);
}

代码示例来源:origin: org.apache.directory.server/apacheds-protocol-dns

( ( NioSocketAcceptor ) acceptor ).setReuseAddress( true );
( ( NioSocketAcceptor ) acceptor ).getSessionConfig().setTcpNoDelay( true );

代码示例来源:origin: kaazing/gateway

socket.setReuseAddress(isReuseAddress());
    System.out.println("NioSocketAcceptor.open(): setReceiveBufferSize:"+getSessionConfig().getReceiveBufferSize());
    socket.setReceiveBufferSize(getSessionConfig().getReceiveBufferSize());
  socket.bind(localAddress, getBacklog());
} finally {
  if (!success) {
    close(channel);

代码示例来源:origin: igniterealtime/Openfire

final DefaultIoFilterChainBuilder filterChain = socketAcceptor.getFilterChain();
  socketAcceptor.getSessionConfig().setMaxReadBufferSize( configuration.getMaxBufferSize() );
  Log.debug( "Throttling read buffer for connections to max={} bytes", configuration.getMaxBufferSize() );

相关文章