servlet 使用AMF3和flash通讯
来源:互联网 发布:淘宝七匹狼是真的假的 编辑:程序博客网 时间:2024/04/28 22:33
经过多次研究,终于实现了JAVA servlet 用AMF3协议基于http到as3的数据传输。
因为JSP输出文本,而AMF3协议是二进制流,所以JSP是做不出来的.
servlet中可以实现,servlet功能也能够满足服务器构架需求,甚至用servlet更好.
------------------------------java servlet代码----------------------------------------:
package tool;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import flex.messaging.io.*;
import flex.messaging.io.amf.*;
public class amf3 extends HttpServlet
{
private static final long serialVersionUID = -1079073749217155506L;
private SerializationContext context = new SerializationContext();
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("application/x-gzip-compressed"); //JAVA ZIP
DeflaterOutputStream stream = new DeflaterOutputStream(new DataOutputStream(response.getOutputStream())); //JAVA ZIP
Amf3Output out = new Amf3Output(context); //AMF3
out.setOutputStream(stream);
HashMap map = new HashMap();
map.put("stat","1");
map.put("msg", "对象坐标");
String[] arr = "1,2,3,4,5".split(",");
map.put("datas", arr);
out.writeObject(map);
stream.finish();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request, response);
}
}
--------------as3客户端代码-------------------------
public static function amf():void
{
var urlvar:URLVariables = new URLVariables();
var ur:URLRequest = new URLRequest();
ur.url = "http://190.75.33.71/hj/amf3";
ur.data = urlvar;
ur.method = URLRequestMethod.POST;
var ul:URLLoader = new URLLoader();
ul.dataFormat = URLLoaderDataFormat.BINARY; //注意要搞成BIN格式
ul.addEventListener(Event.COMPLETE, amf_loadcomplete);
ul.load(ur);
}
public static function amf_loadcomplete(evt:Event):void
{
var byte:ByteArray = evt.target.data as ByteArray;
byte.uncompress(); //解压
var obj:Object = byte.readObject();
main.txt.setText(obj.datas);
}
---------------------------说明---------------------------
所有的例子都是java端用的MAP封装过去,原来blazeds_devguide文档中有说明:
JAVA 中的 ArrayList Array HashMap.
| | |
AS 中的 ArrayCollection Array Object
JAVA想用ArrayList必须在as3中使用ArrayCollection,而这个ArrayCollection是属于MX包的。纯as3项目中根本不能使用。所以全部的例子都是用的map,除了一个用FLEX的可以使用arraylist...
至此,网络传输方式终于可以使用AMF3了。
- servlet 使用AMF3和flash通讯
- 对Flash的Socket和AMF3的研究心得
- Java和Flash通讯
- 使用XMLSocket在Flash和本地程序之间进行通讯
- Mina使用AMF3与Flash Socket通信的"粘包"问题
- 给合Flash的Socket和AMF3来尝试开发web游戏引擎
- asp和flash互相通讯
- 【转】Java和Flash通讯
- AMF3
- 什么是AMF?AMF0和AMF3
- FLASH和ASP之间的通讯
- 四个flash和后台通讯的方法
- flash和javascript之间的通讯
- MFC和Flash的完整通讯
- 四个flash和后台通讯的方法
- flash和后台通讯的方法
- mfc和flash通讯:怎么设置flash组件的值
- 几大和Servlet的通讯方式
- Manacher算法--O(n)回文子串算法
- 将p12转成pem
- oracle 创建索引
- 使用mysql dump 导入与导出的方法
- iOS二维码扫描,你需要注意的两件事
- servlet 使用AMF3和flash通讯
- Android开源项目分类汇总
- Moodle中文API之导航API
- 淘宝tfs-client java配置
- 遍历进程的4种方法
- mybatis关于oracle in 1000个数限制的解决
- PagerSlidingTabStrip介绍及使用,让ViewPager更绚丽
- 为你的集成需求选择正确的 ESB
- python 错误汇总2:致命错误: libxml/xmlversion.h:没有那个文件或目录