mina心跳过滤器

原创 2016年05月31日 20:04:44
一、Mina本身提供了一个过滤器类KeepAliveFilter,该过滤器用于在IO空闲的时候发送并且反馈心跳包,在KeepAliveFilter中共有五个构造器,最终调用的都是有五个参数的构造器
           1)KeepAliveMessageFactory:该实例引用用于判断接受与发送的包是否是心跳包,以及心跳请求包的实现
           2)IdleStatus:该过滤器所关注的空闲状态,默认认为读取空闲,即当读取通道空闲的时候发送心跳包
           3)KeepAliveRequestTimeoutHandler:心跳包请求后超时无反馈情况下的处理机制,默认为关闭连接
           4)KeepAliveRequestInterval:心跳请求包发送的频率
           5)KeepAliveRequestTimeout:心跳请求包超时时间
我们需要实现KeepAliveMessageFactory接口里的四个方法

如何实现以上四个方法呢,让我们来看看mina是如何实现的,源码如下

首先判断这个信息是不是心跳请求信息(是不是心跳请求信息是根据双方的约定来实现的,例如接收到的第一个字符串是x就代表这个信息是心跳请求信息)
如果是心跳请求信息,调用getResponse方法,在这里我们可以选择实现或者不实现getResponse方法,对应的就是心跳机制的两种不同类型,
然后判断这个信息是不是心跳响应信息,如果是心跳响应信息充值session的空闲状态

最后请求执行下一个过滤器

原理OVER

二、在IoAcceptor中配置过滤器链filterChainBuilder

在过滤器链中配置心跳过滤器 value-ref="heartbeat"

配置心跳过滤器KeepAliveFilter

三个参数的配置如下

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Mina Logging Filter日志过滤器知识介绍

原文地址:Mina Logging Filter(Apache Mina User Guide Chapter12 Logging Filter) 1.1.1. 背景 Apache MINA使...
  • boonya
  • boonya
  • 2016年06月16日 10:24
  • 1748

Mina开源框架 心跳机制详解

本文纯手工制作,请用心观看。 在详细讲解mina的心跳机制前,读者需要已经具备了mina的基础知识。 如果不够了解,请查看一下连接。 http://www.cnblogs.com/pricks/p/3...
  • kkk0526
  • kkk0526
  • 2016年06月22日 11:43
  • 6484

mina 心跳包,断线重连的问题

mina自带了心跳包机制,我是每隔15秒发送一次心跳包,若30秒内没有收到,则认为超时。 网络连接的主题函数是: /** * 30秒后超时 */ private st...
  • sangsa
  • sangsa
  • 2016年05月21日 20:02
  • 5490

【MINA】心跳机制

列上两篇好文章 http://www.cnblogs.com/pricks/p/3832882.html http://blog.csdn.net/cruise_h/article/det...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Apache MINA 连续自动发送心跳包

心跳包,那么就是验证服务器和客户端是否连接,只要设置session的idl时间差就行了 /** * session建立时调用 */ @Override public void sessio...
  • lsh6688
  • lsh6688
  • 2013年07月31日 22:09
  • 11021

mina 心跳机制

http://wandejun1012.iteye.com/blog/2065941  MINA自带了对心跳协议的支持,可以对心跳做出细致的配置,本文在次基础上实现了server端对client端的...

apache MINA之心跳协议运行机制

摘要 心跳协议,对基于CS模式的系统开发来说是一种比较常见与有效的连接检测方式,最近在用MINA框架,原本自己写了一个心跳协议实现,后来突然发现MINA本身带有这样一个心跳实现,感于对框架的小小崇拜,...

mina心跳包:客户端发送心跳包,服务端响应心跳包

结果如下: 下载地址:稍后补上

mina 心跳机制

MINA自带了对心跳协议的支持,可以对心跳做出细致的配置,本文在次基础上实现了server端对client端的心跳检测。 在开始之前先简单介绍下keepAlive的机制: 首先,需要搞清楚...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mina心跳过滤器
举报原因:
原因补充:

(最多只允许输入30个字)