欢迎来到天天文库
浏览记录
ID:36192929
大小:136.56 KB
页数:12页
时间:2019-05-07
《apache mina 入门实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ApacheMina入门实例August15,2014这个教程是介绍使用Mina搭建基础示例。这个教程内容是以创建一个时间服务器。以下是这个教程需要准备的东西:·MINA2.0.7Core·JDK1.5或更高·SLF4J 1.3.0或更高·Log4J1.2用户:slf4j-api.jar,slf4j-log4j12.jar,和Log4J1.2.x·Log4J1.3用户:slf4j-api.jar,slf4j-log4j13.jar,和Log4J1.3.x·java.util.logging用户:slf4j-api.jar和slf4j
2、-jdk14.jar·重要提醒:请确认你使用的slf4j-*.jar和你的logging框架匹配。举个板栗,slf4j-log4j12.jar和log4j-1.3.x.jar是不能混在一起用的,否则会出问题。创建一个MINA时间服务WewillbeginbycreatingafilecalledMinaTimeServer.java我们创建一个文件名为 MinaTimeServer.java ,文件内容如下:publicclassMinaTimeServer{publicstaticvoidmain(String[]args){//
3、还没有东西呢}}上面的代码应该不用解释了吧,为了创建我们的服务,我们需要一个监听传入连接的对象,由于我们的项目是基于TCP/IP,所以需要一个SocketAcceptor 对象来帮我们处理。importorg.apache.mina.core.service.IoAcceptor;importorg.apache.mina.transport.socket.nio.NioSocketAcceptor;publicclassMinaTimeServer{publicstaticvoidmain(String[]args){IoAcce
4、ptoracceptor=newNioSocketAcceptor();}}创建好后,我们可以定义处理请求的类,和指定监听的端口等。接下来,我们需要在配置里添加几个过滤器。第一个是logger,这个过滤器用来记录所有的信息,比如创建session(会话),接收消息,发送消息,关闭会话等。第二个是ProtocolCodecFilter(协议编解码过滤器).这个过滤器用来转换二进制或协议的专用数据到消息对象中,反之亦然。我们这里使用一个已经存在的TextLine工厂,因为我们这里只处理一些文字消息(你不需要再去写编解码部分)。impor
5、tjava.nio.charset.Charset;importorg.apache.mina.core.service.IoAcceptor;importorg.apache.mina.filter.codec.ProtocolCodecFilter;importorg.apache.mina.filter.codec.textline.TextLineCodecFactory;importorg.apache.mina.filter.logging.LoggingFilter;importorg.apache.mina.tran
6、sport.socket.nio.NioSocketAcceptor;publicclassMinaTimeServer{publicstaticvoidmain(String[]args){IoAcceptoracceptor=newNioSocketAcceptor();acceptor.getFilterChain().addLast("logger",newLoggingFilter());acceptor.getFilterChain().addLast("codec",newProtocolCodecFilter(new
7、TextLineCodecFactory(Charset.forName("UTF-8"))));}}Forthistutorial,wewillextendtheclassIoHandlerAdapter.ThisisaclassthatfollowstheadapterdesignpatternwhichsimplifiestheamountofcodethatneedstobewritteninordertosatisfytherequirementofpassinginaclassthatimplementstheIoHan
8、dlerinterface.接下来我们需要创建一个handler来实时处理客户端的连接和请求,这个handler 类必须实现 IoHandler这个接口。对于所有使用MINA的程序来说,主要的负荷都在这个文件,它为所有客户端请求提供服
此文档下载收益归作者所有