MINA 开发入门实例--用于FLEX的843端口
发布时间:2020-12-15 04:16:31 所属栏目:百科 来源:网络整理
导读:?最近由于公司业务需要,开始学习mima框架 ,贴上一个简单的入门实例. ? ? ?该实例主要实现的功能是: 开启一个843监听端口,其作用是为FLEX的安全沙箱机制提供策略文件(可不管这是干什么的)。 WebFlex843Server类 package com.demo.service843;import jav
?最近由于公司业务需要,开始学习mima框架 ,贴上一个简单的入门实例. ? ? ?该实例主要实现的功能是: 开启一个843监听端口,其作用是为FLEX的安全沙箱机制提供策略文件(可不管这是干什么的)。 WebFlex843Server类 package com.demo.service843; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.log4j.Logger; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class WebFlex843Server { private final static Logger logger = Logger.getLogger(WebFlex843Server.class); //端口号 private final static int PORT = 843; public void startWf843Server() { // 非阻塞的 IoAcceptor acceptor = new NioSocketAcceptor(); // 过滤器,客服端上传上来的信息必须以">"结尾;且服务器端下发的信息末尾自动加上">" acceptor.getFilterChain().addLast( "codec",new ProtocolCodecFilter(new TextLineCodecFactory(Charset .forName("UTF-8"),">",">"))); // 绑定逻辑处理器 acceptor.setHandler(new WebFlex843ServerHandler()); // 设置缓冲区大小和读写通道10秒内无操作进入空闲状态 acceptor.getSessionConfig().setReadBufferSize(2048); acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,10); // 绑定端口 try { acceptor.bind(new InetSocketAddress(PORT)); } catch (IOException e) { logger.info("异常:WebFlex服务器绑定端口号:" + PORT + ",出现异常"); return; } logger.info("WebFlxe843服务器已启动,监听端口" + PORT + " ..."); } FlexServerHandler 类 package com.demo.service843; import org.apache.log4j.Logger; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; public class WebFlex843ServerHandler extends IoHandlerAdapter { private final static Logger logger = Logger .getLogger(WebFlex843ServerHandler.class); /** * AS要接收 结尾的字符串 */ private static final String SECURITY_FILE = "<?xml version="1.0"?>" + "<cross-domain-policy>" + "<site-control permitted-cross-domain-policies="all"/>" + "<allow-access-from domain="*" to-ports="*" />" + "</cross-domain-policy> |