org.apache.mina.filter.keepalive.KeepAliveFilter Java Examples
The following examples show how to use
org.apache.mina.filter.keepalive.KeepAliveFilter.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CalculatorServer.java From mina with Apache License 2.0 | 6 votes |
public static void main(String[] args) throws IOException { IoAcceptor acceptor = new NioSocketAcceptor(); // acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, IDELTIMEOUT); acceptor.getFilterChain().addLast("logger", new LoggingFilter()); acceptor.getFilterChain().addLast("myfliter", new MyFilter()); acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new CommandCodecFactory("UTF-8"))); KeepAliveMessageFactoryImpl kamfi = new KeepAliveMessageFactoryImpl(); KeepAliveFilter kaf = new KeepAliveFilter(kamfi, IdleStatus.BOTH_IDLE); /** 是否回发 */ kaf.setForwardEvent(true); acceptor.getFilterChain().addLast("heart", kaf); acceptor.setHandler(new CalculatorHandler()); acceptor.bind(new InetSocketAddress(PORT)); log.debug("socket通信服务端已启动,端口是" + PORT); }
Example #2
Source File: CIMNioSocketAcceptor.java From cim with Apache License 2.0 | 5 votes |
private void bindAppPort() throws IOException { appAcceptor = new NioSocketAcceptor(); ((DefaultSocketSessionConfig) appAcceptor.getSessionConfig()).setKeepAlive(true); ((DefaultSocketSessionConfig) appAcceptor.getSessionConfig()).setTcpNoDelay(true); KeepAliveFilter keepAliveFilter = new KeepAliveFilter(this, IdleStatus.BOTH_IDLE); keepAliveFilter.setRequestInterval(IDLE_HEART_REQUEST_TIME); keepAliveFilter.setRequestTimeout(HEART_RESPONSE_TIME_OUT); keepAliveFilter.setForwardEvent(true); appAcceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new AppMessageCodecFactory())); appAcceptor.getFilterChain().addLast("logger", new LoggingFilter()); appAcceptor.getFilterChain().addLast("heartbeat", keepAliveFilter); appAcceptor.getFilterChain().addLast("executor", new ExecutorFilter(createWorkerExecutor())); appAcceptor.setHandler(this); appAcceptor.bind(new InetSocketAddress(appPort)); String logBanner = "\n\n" + "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n" + "* *\n" + "* *\n" + "* App Socket Server started on port {}. *\n" + "* *\n" + "* *\n" + "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"; LOGGER.info(logBanner, appPort); }
Example #3
Source File: ChainConfigurator.java From neoscada with Eclipse Public License 1.0 | 4 votes |
public void startKeepAlive ( final int pingFrequency, final int timeout /*in seconds */) { final int pingInterval = (int)Math.ceil ( (double)timeout / (double)pingFrequency ); logger.info ( "Starting keep alive - frequency: {}, timeout: {} seconds, ping interval: {} seconds", new Object[] { pingFrequency, timeout, pingInterval } ); replaceMarker ( "keepalive", new KeepAliveFilter ( new MessageChannelKeepAliveFactory (), IdleStatus.READER_IDLE, KeepAliveRequestTimeoutHandler.CLOSE, pingInterval, timeout ) ); }
Example #4
Source File: CalculatorClient.java From mina with Apache License 2.0 | 4 votes |
@Override public void run() { IoConnector connector = new NioSocketConnector(); connector.setConnectTimeoutMillis(CONNECT_TIMEOUT);//设置连接超时时间(毫秒数) connector.getFilterChain().addLast("logger", new LoggingFilter()); connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new CommandCodecFactory("UTF-8"))); KeepAliveMessageFactoryImpl kamfi = new KeepAliveMessageFactoryImpl(); KeepAliveFilter kaf = new KeepAliveFilter(kamfi, IdleStatus.READER_IDLE, KeepAliveRequestTimeoutHandler.CLOSE); /** 是否回发 */ kaf.setForwardEvent(true); connector.getFilterChain().addLast("heart", kaf); connector.setHandler(new CalculatorClientHander()); ConnectFuture connectFuture = connector.connect(new InetSocketAddress(IP, PORT)); //等待建立连接 connectFuture.awaitUninterruptibly(); if(!connectFuture.isConnected()){ log.debug("连接失败"); return ; } log.debug("连接成功"); IoSession session = connectFuture.getSession(); // try { // Cmd1003 cmd1003 = (Cmd1003) CommandFactory.createCommand(CidConst.C1003); // cmd1003.getReqMsg().setCpu(0.3f); // cmd1003.getReqMsg().setDisk(0.24f); // cmd1003.getReqMsg().setMemory(0.41f); // session.write(cmd1003); // } catch (Exception e) { // e.printStackTrace(); // } //关闭 if (session != null) { if (session.isConnected()) { session.getCloseFuture().awaitUninterruptibly(); } connector.dispose(true); } }