package org.jivesoftware.openfire.plugin.mongodb.file;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.ASObject;
import flex.messaging.io.amf.Amf3Input;
import flex.messaging.io.amf.Amf3Output;
/**
* AMF3 handle
*
* @author dhdu@qq.com
*
*/
public class Amf3 {
private final static Amf3 instance = new Amf3();
private static SerializationContext serializationContext;
//
private Amf3() {
}
//
public static Amf3 getInstance() throws Exception {
return instance;
}
static {
serializationContext = new SerializationContext();
}
public ASObject getASObject(HttpServletRequest request) {
ASObject aso=null;
try {
ServletInputStream in=request.getInputStream();
Amf3Input aip = new Amf3Input(serializationContext);
if (in != null) {
aip.setInputStream(in);
aso = (ASObject) aip.readObject();
//in.close();
aip.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return aso;
}
public void writeASObject(HttpServletResponse response,ASObject a){
Amf3Output amfOut=null;
try {
response.setContentType("application/x-gzip-compressed");
ServletOutputStream os=response.getOutputStream();
amfOut = new Amf3Output(serializationContext);
//ByteArrayOutputStream outStream = new ByteArrayOutputStream();
//DataOutputStream dataOutStream = new DataOutputStream(outStream);
amfOut.setOutputStream(os);
amfOut.writeObject(a);
//byte[] bytes=outStream.toByteArray();
//os.write(bytes);
os.flush();
//os.close();
//outStream.flush();
//outStream.close();
//dataOutStream.flush();
//dataOutStream.close();
amfOut.flush();
amfOut.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
自己写的flash webgame 搭建的java 后台 解决了安全沙箱问题,可以进行聊天,和后台java函数的请求及响应。amf3 编码。
支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject、writeObject )。 支持AS3的ByteArray的compress、uncompress压缩算法:DEFLATE、LZIB、LZMA。 支持直接修改AS3的ByteArray字节流内编码的对象。 ...
amf3 的格式说明,英文版,做rtmp协议或者做与flash数据交互服务器端必备的参考
之前测试解析amf3协议数据进行树化便于观察的,解析的有可能不是很完美,正常用来观察里面的数据没什么问题
用于分析AMF数据分析的工具,使用简单方便,帮助提高AMF分析效率
抓取AMF协议的flex页面,支持模拟登录和页面抓取。
AMF3 C++ 源码 修改版 支持序列化和对象化的AMF3解析
AMF 读写器库简单的 Java AMF 读写器库。
AMF3 C++ AMF3 C++ 源码库码库
amf3_spec amf3_spec amf3_spec amf3_spamf3_specec
java运行依赖jar包
AMF3协议中文版定义.pdf
PKG解析amf数据分析器_v30,可一键读取PKG,解密PKG内容
Adobe Flex BlazeDS AMF File Format 熟悉下这个东西后,可以自己实现BlazeDS的前端和后端,至少也能在浏览器里的F12开发环境里搞明白AMF的内容了。
一个用C++编写的,amf3协议解析模块,可以实现flash通信协议的解析
易语言amf解析构造源码,amf解析构造,分析amf,取短整数_字节集,时间到双精度,到时间_双精度,取整数_字节集,integer_字节集,取双精度_字节集,amf3型数据,十六进制转字节集,分析数据段,解析amf数据,解析amf3数据,Utf8转...
基于AMF的Android数据通信.pdf
AMF 是一种压缩二进制格式 用来系列化ActionScript对象图 一旦系列化 AMF编码对象图可以用来持久化和跨会话检索应用程序的公开状态或者允许二端通过交换强类型数据进行通信">Action Message Format AMF3中英文对照 ...
amf3_spec_05_05_08.pdf amf3_spec_05_05_08.pdf amf3_spec_05_05_08.pdf
amf0 原版文档 完整版