`

网页游戏的as通信需要一个策略文件 mina的过滤器加个fiter

 
阅读更多

import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.IoFilterAdapter;
import org.apache.mina.core.session.IoSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 策略文件过滤器
 */
public class PolicyFilter extends IoFilterAdapter {

	private final static Logger logger = LoggerFactory.getLogger(PolicyFilter.class);

	private final static byte[] policyResponse = "<?xml version=\"1.0\"?><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0"
			.getBytes();
	private final static byte[] policyRequest = "<policy-file-request/>\0".getBytes();

	@Override
	public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception {
		if (message instanceof IoBuffer) {
			IoBuffer buff = (IoBuffer) message;
			int len = policyRequest.length;
			if (buff.remaining() == len) {
				byte[] arr = buff.array();
				boolean equal = true;
				for (int i = 0; i < len; i++) {
					if (arr[i] != policyRequest[i]) {
						equal = false;
						break;
					}
				}
				if (equal) {
					session.write(policyResponse);
					if (logger.isDebugEnabled()) {
						logger.debug("向会话[{}]返回策略文件", session.getId());
					}
				}
			}
		}
		super.messageReceived(nextFilter, session, message);
	}
}


分享到:
评论

相关推荐

    MINA 协议解码过滤器

    协议解码过滤器(ProtocolDecoderFilter)就是这样的一个过滤器,它的主要任务是从接收到的原始字节流中解析出有意义的数据结构,比如网络协议的消息。 具体来说,`ProtocolDecoderFilter`是MINA框架中处理数据解码...

    Mina+Socket通信

    在Mina与Socket通信的实现中,服务端通常使用Mina来创建一个Acceptor,监听特定端口,等待客户端的连接请求。一旦有连接建立,Mina会自动触发相应的事件处理器,开发者可以在其中处理数据读写。以下是一个基本的...

    mina的高级使用,mina文件图片传送,mina发送文件,mina报文处理,mina发送xml和json

    Apache Mina是一个开源的网络通信应用框架,主要应用于Java平台,它为高性能、高可用性的网络应用程序提供了基础架构。在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理...

    mina简单通信需要的包

    标题中的“mina简单通信需要的包”指的是Apache Mina框架,这是一个用于构建高性能、异步网络应用程序的Java框架。在本文中,我们将深入探讨Mina的核心概念和它在通信中的应用,以及与之相关的库SLF4J。 Apache ...

    mina sslfilter大用法

    在处理安全套接层(SSL)通信时,Mina提供了一个名为`SslFilter`的组件,它是实现加密和身份验证的关键部分。在本教程中,我们将深入探讨如何使用Mina的`SslFilter`来构建安全的网络应用。 **1. SSL/TLS协议概述** ...

    MINA加jar打包文件

    这个“MINA加jar打包文件”包含了MINA框架的一个特定版本——2.0.0-M4,以及相关的beans整合模块。 mina-integration-beans-2.0.0-M4.jar是MINA框架与Spring框架集成的模块,它允许开发者利用Spring的IoC...

    Mina通信框架应用示例

    - Filter链:MINA采用过滤器链模式,允许开发者插入自定义的过滤器来处理数据,如编码、解码、安全等。 - IoSession:表示网络连接,包含与连接相关的状态信息和操作。 - IoProcessor:负责实际的I/O操作,如读写...

    mina-filter-compression-2.0.7.jar

    mina-filter-compression-2.0.7.jar,mina 过滤器jar包,核心包之一

    服务端基于MINA2的UDP双向通信Demo演示(MINA2服务端)

    5. **过滤器(Filter)**:MINA2中的过滤器是处理输入和输出数据的组件,可以添加多个过滤器形成过滤器链,每个过滤器执行特定的任务,如解码、加密、日志记录等。 6. **Echo服务器**:Echo服务器是一种简单的...

    mina通信demo

    - **Filter Chain**:Mina采用过滤器链模式处理网络通信,每个过滤器执行特定任务,如数据编码解码、身份验证等。过滤器之间按照顺序传递消息,使得系统更灵活可扩展。 - **Session**:Mina中的Session代表了客户端...

    mina传文件案例,客户端加服务端

    1. 初始化IoAcceptor:Mina服务端首先需要创建一个IoAcceptor实例,用于监听特定端口的连接请求。通常使用NioSocketAcceptor,它基于Java的非阻塞I/O(NIO)模型,可以高效地处理大量并发连接。 2. 创建...

    mina通信基本代码实现和学习文件

    Mina通信框架是Apache软件基金会的一个项目,主要应用于开发高性能、高可靠性的网络应用程序,尤其在Java平台上。它提供了一套全面的事件驱动、异步I/O的服务端和客户端API,使得开发者能够更容易地构建网络服务,如...

    mina服务器--实现纯文本和非纯文本的加密通讯

    在实现加密通信时,我们需要创建一个包含SSLFilter的过滤器链,这个过滤器负责处理SSL/TLS相关的任务,如握手、加密和解密数据。 4. **证书管理**:为了启用SSL/TLS,服务器和客户端都需要各自的数字证书。服务器端...

    mina双向通信已测试

    本项目提供了一个完整的Mina双向通信示例,允许客户端和服务端互相发送消息。该demo的核心功能是接收用户输入的字符串并进行传输,适用于学习和理解Mina框架的通信机制。 **Mina框架** Mina采用事件驱动模型和非...

    mina库文件

    2. **过滤器链**:MINA 的过滤器链是其设计的一个亮点,它提供了一种可插拔的架构,允许开发者插入自定义的过滤器来处理数据。这些过滤器可以实现数据编码、解码、认证、加密等功能,增加了系统的灵活性和可扩展性。...

    socket通信,mina长连接通信

    3. **MINA API**:MINA提供了一系列接口,如`IoSession`代表一个连接,`IoHandler`处理网络事件,`Filter`进行数据过滤和处理等,简化了开发者的工作。 4. **测试与部署**:MINA项目包含丰富的示例和测试用例,方便...

    mina 上传文件

    Apache Mina是一个高度可扩展的网络通信框架,它允许开发者创建高性能、高可用性的网络应用程序。在Java开发中,Mina常被用于实现各种网络协议,包括TCP/IP和UDP/IP,以及FTP、SSH等。本篇文章将深入探讨如何利用...

    MINA网络通信框架.pdf

    Apache MINA是一个强大的网络通信框架,专为构建高性能和高可扩展性的网络应用程序设计。它基于事件驱动和异步模型,支持多种传输协议,如TCP/IP、UDP/IP、串口通信以及虚拟机内部的管道。MINA的核心理念是将网络...

    Mina自定义协议通信的示例

    在IT行业中,网络通信是核心领域之一,而Mina(Mindterm In Action Network Application)是一个高性能、跨平台的Java框架,常用于构建网络应用程序,如服务器和客户端。本示例聚焦于Mina中的自定义协议通信,这允许...

    mina 集成spring 传输文件和文本

    Mina(Java Foundation for Network Applications)是一个开源的网络通信框架,它提供了一种高性能、高灵活性的网络应用开发方式。集成Spring框架后,可以利用Spring的依赖注入和管理能力,使Mina服务更加易于配置和...

Global site tag (gtag.js) - Google Analytics