之前自己的socket服务器端我都是用定时器来实现的,即发了报文后就开启超时定时器,设定时间还未收到客户端回复就重发报文,重发三次后,就断开socket,收到即关闭超时定时器。 但这几日弄MINA,结构那些基本弄清楚了,但如果实现超时重发还没发现现成的方法?用过滤器?用IoHandler里的sessionIdle?还是用计时器? 比较困惑的是,如果我固定时间内收到了客户端的信息后,在读取空闲达到也不能重发了,这个怎么来判断,如果不用计时器,那要加个布尔变量单独判断吗(即发了报文出去后,检查超时的布尔变量为真,当固定时间内收到就变为假后就不重发了。然后一直没报文了就开始心跳)。
每次心跳的时间都是固定的,定义一个变量记录心跳次数不行吗?