您的位置:首页 > 移动开发 > Android开发

学习Android推送功能笔记(5)---Mina初体验

2015-10-22 11:39 501 查看

首先百度一下Mina

http://mina.apache.org/

如果想用Mina,就要下载Mina的jar包,,,

Apache MINA 2.0.9 stable (Java 5+)

Binaries

.tar.gz archive mina-2.0.9 (signatures : MD5 SHA1 ASC)

.tar.bz2 archive mina-2.0.9 (signatures : MD5 SHA1 ASC)

.zip archive mina-2.0.9 (signatures : MD5 SHA1 ASC)

Sources

.src.tar.gz archive mina-2.0.9(signatures : MD5 SHA1 ASC

.src.tar.bz2 archive mina-2.0.9 (signatures : MD5 SHA1 ASC

.src.zip archive mina-2.0.9 (signatures : MD5 SHA1 ASC


如果想研究源码就下载Sources,如果只是使用就下载Binaries就是了

导入到项目 dist下面的 mina-core-2.0.9.jar 和 lib下面的 slf4j.api-1.7.7.jar.第一个是核心功能.第二个是日志啥的,

四步实现基本Mina功能

第一步,初始化NioSocketAcceptor,用来接收客户端的连入,消息的接收等

NioSocketAcceptor acceptor = new NioSocketAcceptor();


第二步,为Acceptor设置Handler,Mina是通过Handler来处理消息的,把网络处理和消息处理分割开来,以便于代码的管理

acceptor.setHandler(new MyServerHandler());


当然handler是和已自己写的但是要继承
IoHandlerAdapter
这个类,

里面设置了一些回调方法比如,接入时,发生异常时
exceptionCaught
,收到消息时
messageReceived
,发出消息时
messageSent
,服务器闲置时等
sessionIdle


第三步 为Acceptor设置解码器(拦截器),可以用常用的自带的解码器 PortocolCodecFiliter—TextLineCodecFactory,当然,这个知识用来读取一行数据的,要实现读取自己的数据,例如JSON,XML等,就要自定义了

acceptor.getFilterChain().addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory()));


第四步,绑定端口!

acceptor.bind(new InetSocketAddress(9899));


要用到服务器闲置时

acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 5);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: