Mina

来源:互联网 发布:为什么工业革命 知乎 编辑:程序博客网 时间:2024/04/26 14:44

Mina基本结构



IoAccepter 相当于网络应用程序中的服务器端

IoConnector 相当于客户端

IoSession 当前客户端到服务器端的一个连接实例

IoHandler 业务处理逻辑

IoFilter 过滤器用于悬接通讯层接口与业务层接口

 

Mina介绍参考链接http://blog.csdn.net/zhangyaoming2004/article/details/7349447 


IoHandler 业务处理逻辑,一般收到连接时创建,打开,数据读写,关闭,异常处理信息

IoFilter过滤器用于连接通讯层接口和业务层接口,日志数出,黑名单过滤,数据的编码write方向与解码read方向等功能


基础类

Ioservice

该接口是服务端IoAcceptor,客户端IoConnector的抽象,提供IO服务和管理IoSession的功能


IoAcceptor

该接口是用于服务器的接口,主要增加了void bind() 监听接口,void unbind()解除对套接字的监听等方法


IoConnector

用于客户端的接口,主要增加了ConnectFuture connect(IP, PORT)方法,用于server端建立连接,第二个参数不传递,则随即使用本地的一个端口,方法是异步执行的,同样的可以连接多个服务端


Iosession

该接口用于表示server端与客户端的连接IoAcceptor.accept的时候返回的实例


IosessionConfig

方法用于指定此次会话的配置


IoHandler

该接口是编写业务逻辑的一个地方,度无数据发送数据基本都在该接口完成,这个实例是绑定到IoService上的,有且只有一个实例(如果没有给Ioservice注入一个IoHandler实例会抛异常)


IoBuffer

该接口是对 Java NIO 的ByteBuffer的封装,ByteBuffer是定长的,IoBuffer是可变的,都是非线程安全


IoFuture

返回值是xxxFuture都是IoFuture的子类,异步执行IoFuture addListener(),IoFuture removeListener()


ProtocolCodeFilter

public interface protocolcodecFactory{    protocolEncoder getEncoder(Iosession session) throws Exception    protocolDecoder getDecoder(Iosession session) throws Exception}

keepAliveFilter

mina本身支持心跳的,在继承IoHandlerAdapter的类中添加一个心跳包步骤如下:

keepAliveFilter heartBeat = new keepAliveFilter(mKeepAlive,IdleStatuc.BOTH_IDLE);heartBeart.setForwardEvent(true);heartBeart.setRequestInterval(15);acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 5);acceptor.getFilterChain().addLast("keepalive", heartBeat);

然后在连接时,sessionCreated方法中addSession.getConfig.setIdleTime(IdleStatus.BOTH_IDLE,5);//C/S无数据开始计时,5s后自动发送心跳包


其次,利用 session的write方法,write一个心跳包出去



问题记录:

1、mina 启动的调用类需要实现Runnable 才可正常启动

2、java mina客户端和C 服务端交互要注意编码

chain.addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"), LineDelimiter.UNIX, LineDelimiter.UNIX)));//test String ok



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 马丁靴大了一码怎么办 社保掌上通登录密码忘记怎么办 录微课时忘词怎么办 微课掌上通看不到信息怎么办 五年级学生上课很吵新老师怎么办 跟财务老师吵起来怎么办 qq把微信冻结了怎么办 微信给封号了怎么办 微信久了没登录冻结了怎么办 换手机号了微店怎么办 ai文件置入后都是字怎么办 excel加载项被禁用了怎么办 被期刊网骗了怎么办 发表的文章不想被收录怎么办? 农村长说的眼睛害了怎么办 普通党员不认同领导的决定怎么办 大学读不下去了怎么办 教师因病长期不能上班怎么办 长按win键黑屏了怎么办 巡视组巡视出问题后续怎么办 货运资格证两次没继续教育怎么办 电子注册备案表学信网查不到怎么办 学信网学籍档案没照片怎么办 信访局不给答复怎么办 发票跳了一个号怎么办 报税用的ca证书怎么办 报税u盘丢了怎么办 地税ca证书丢了怎么办 深圳ca证书丢了怎么办 武汉国税报税证书过期怎么办 江苏大学专业选修课挂了怎么办 电信翼企享福卡怎么办 教育部学籍在线验证报告过期怎么办 身份证被别人注册了学信网怎么办 大专文凭查不到学籍该怎么办 学信网上查不到学历怎么办 学信网上没有学历照片怎么办 学信网上没照片怎么办 学历认证报告丢了怎么办 学历认证弄丢了怎么办 手机系统安全证书有问题怎么办