/** * Stops the server. */ public void stop() { assert srv != null; srv.stop(); }
/** * @param addr Node address. * @param rmtNodeId Id of node to open connection check session with. */ public void init(InetSocketAddress addr, UUID rmtNodeId) { boolean connect; try { ch = SocketChannel.open(); ch.configureBlocking(false); ch.socket().setTcpNoDelay(true); ch.socket().setKeepAlive(false); connect = ch.connect(addr); } catch (Exception e) { finish(false); return; } if (!connect) { sesMeta = new GridLeanMap<>(3); // Set dummy key to identify connection-check outgoing connection. sesMeta.put(TcpCommunicationSpi.CONN_IDX_META, new ConnectionKey(rmtNodeId, -1, -1, true)); sesMeta.put(SES_FUT_META, this); nioSrvr.createSession(ch, sesMeta, true, new IgniteInClosure<IgniteInternalFuture<GridNioSession>>() { @Override public void apply(IgniteInternalFuture<GridNioSession> fut) { if (fut.error() != null) finish(false); } }); } }
GridNioServer<T> ret = new GridNioServer<>( addr, port, ret.idleTimeout(idleTimeout); ret.writeTimeout(writeTimeout);
ses = (GridNioSession)srv.createSession(ch, meta, false, null).get(); if (cleanup) { if (ses != null) srv.close(ses);
filters = new GridNioFilter[] { codec }; srv = GridNioServer.<GridClientMessage>builder() .address(hostAddr) .port(port) .build(); srv.idleTimeout(cfg.getIdleTimeout()); srv.start();
/** * @throws Exception If test failed. */ @Test public void testAsyncSendReceive() throws Exception { CountDownLatch latch = new CountDownLatch(10); NioListener lsnr = new NioListener(latch); GridNioServer<?> srvr1 = startServer(new BufferedParser(false), lsnr); GridNioServer<?> srvr2 = startServer(new BufferedParser(false), lsnr); GridNioSession ses = null; try { SocketChannel ch = SocketChannel.open(new InetSocketAddress(U.getLocalHost(), srvr2.port())); GridNioFuture<GridNioSession> fut = srvr1.createSession(ch, null, false, null); ses = fut.get(); for (int i = 0; i < 5; i++) { ses.send(createMessageWithSize()); ses.send(createMessageWithSize()); } assert latch.await(30, SECONDS); assertEquals("Unexpected message count", 10, lsnr.getMessageCount()); } finally { if (ses != null) ses.close(); srvr1.stop(); srvr2.stop(); } }
}; GridNioServer.Builder<Message> builder = GridNioServer.<Message>builder() .address(locHost) .port(port) ", locHost=" + locHost + ", selectorsCnt=" + selectorsCnt + ", selectorSpins=" + srvr.selectorSpins() + ", pairedConn=" + usePairedConnections + ']'); srvr.idleTimeout(idleConnTimeout);
nioSrvr.start();
srvr.writeTimeout(500); srvr.stop();
srvr.idleTimeout(1000); srvr.stop();
/** * @param port Port to listen. * @param parser Parser to use. * @param lsnr Listener. * @return Server builder. * @throws Exception If failed. */ @SuppressWarnings("unchecked") protected GridNioServer.Builder<?> serverBuilder(int port, GridNioParser parser, GridNioServerListener lsnr) throws Exception { return GridNioServer.builder() .address(U.getLocalHost()) .port(port) .listener(lsnr) .logger(log) .selectorCount(Runtime.getRuntime().availableProcessors()) .igniteInstanceName("nio-test-grid") .tcpNoDelay(true) .directBuffer(true) .byteOrder(ByteOrder.nativeOrder()) .socketSendBufferSize(0) .socketReceiveBufferSize(0) .sendQueueLimit(0) .filters(new GridNioCodecFilter(parser, log, false)); }
/** * @return Server port. */ public int port() { return srv.port(); }
/** * @return Outbound message queue size. */ public int getOutboundMessagesQueueSize() { return nioSrvr.outboundMessagesQueueSize(); }
filters = new GridNioFilter[] { codec }; srv = GridNioServer.<GridClientMessage>builder() .address(hostAddr) .port(port) .build(); srv.idleTimeout(cfg.getIdleTimeout()); srv.start();
}; GridNioServer.Builder<Message> builder = GridNioServer.<Message>builder() .address(locHost) .port(port) ", locHost=" + locHost + ", selectorsCnt=" + selectorsCnt + ", selectorSpins=" + srvr.selectorSpins() + ", pairedConn=" + usePairedConnections + ']'); srvr.idleTimeout(idleConnTimeout);
srvr.start();