我一直在用Apache Mina开发我的第一个基于TCP/Socket的应用程序,它看起来不错并且容易做事。我只想在这里问一个关于米娜的问题。Apache Mina空闲监视器
服务器并处5秒的空闲时间将终止套接字连接,所以我们要定期发送心跳(回声消息/存活),以确保连接是活的。一系列保活机制。
有,我们只是每5秒钟,然后盲目地发送回声/心跳消息的一种方式。我在想,如果我正在发送我的商业信息,并且没有空闲时间,即5秒钟,应该有智能/智能的方式“空闲监视器”,我不应该发出心跳信息。如果整个连接空闲,心跳消息将被发送,这样我们可以节省带宽并快速读取在套接字上写入的数据。
在此先感谢,对所有谁喜欢这个概念,并尽量给予解决。
谢谢你Umer。我正在寻找这种情况下的最佳解决方案。我概述了KeepAlive过滤器,在IoHandler和自定义线程/定时器上闲置时间以发送回显消息。现在我认为,IoHandler的闲置超时时间看起来最好。 – 2012-04-06 10:15:32
@FaisalBasra所以,你的意思是你会选择在这个答案中的解决方案?不用担心,我很高兴它为你工作:) – 2012-04-06 10:22:52
是的。我们的第三方服务器强制每30秒发送一次echo/heartbeat消息,我认为是 NioSocketConnector.getSessionConfig()。setIdleTime(IdleStatus.BOTH_IDLE,3);然后在处理程序的“@Override \t public void sessionIdle(IoSession session,IdleStatus status)”将很好。感谢您的想法和理念。万分感激。 – 2012-04-09 05:49:35