public static RemotingServer createRemotingServer() throws InterruptedException { NettyServerConfig config = new NettyServerConfig(); config.setServerChannelMaxIdleTimeSeconds(30); RemotingServer remotingServer = new NettyRemotingServer(config); remotingServer.registerProcessor( 0, new NettyRequestProcessor() { private int i = 0; @Override public RemotingCommand processRequest( ChannelHandlerContext ctx, RemotingCommand request) { System.out.println("processRequest=" + request + " " + (i++)); request.setRemark("hello, I am respponse " + ctx.channel().remoteAddress()); return request; } @Override public boolean rejectRequest() { return false; } }, Executors.newCachedThreadPool()); remotingServer.start(); return remotingServer; }
// @Test public void test_idle_event() throws InterruptedException, RemotingConnectException, RemotingSendRequestException, RemotingTimeoutException { RemotingServer server = createRemotingServer(); RemotingClient client = createRemotingClient(); for (int i = 0; i < 10; i++) { RemotingCommand request = RemotingCommand.createRequestCommand(0, null); RemotingCommand response = client.invokeSync("localhost:8888", request, 1000 * 3); System.out.println(i + " invoke result = " + response); assertTrue(response != null); Thread.sleep(1000 * 10); } Thread.sleep(1000 * 60); client.shutdown(); server.shutdown(); System.out.println("-----------------------------------------------------------------"); }