对Flash的Socket和AMF3的研究心得

最近考虑结合Flash的Socket和AMF3来实现聊天室功能,Socket比起原来的XMLSocket来说,增加了可传递二进制数据,而AMF3 则可以封装很多类型的数据,并且从flash player 9以后flash可以直接读取数据,这样的话,就可以大大提升数据通信效率,我这边同时利用ByteArray的数据压缩解压功能,可以对原来数据进行再 次压缩,相对没有压缩的AMF3数据则又可以提升几倍效率,对于大文本数据的效果更为显著。
     ByteArray的压缩格式其实就是zlib算法,Java类包里就是Java.util.zip.*包,服务端数据就可以直接进行压缩解压了!
     我在网上又找到了一个功能和扩展性都很好的项目-apache mina (http://mina.apache.org/ ),再给合AMF3就可以很容易实现支持AMF3的Socket服务程序。
     我目前阶段可以实现简单的聊天功能:
/upload/amf3.jpg

客户端有关压缩和解压的代码

  1. /*  
  2.          ...  
  3.          */   
  4.          //发送代码;   
  5. var bytes:ByteArray = new  ByteArray();  
  6. bytes.writeObject( { event:"send" , message:input.text } );  
  7. input.text = "" ;  
  8. bytes.compress();  
  9. socket.writeBytes(bytes);  
  10. socket.flush();  
  11.          /*  
  12.          ...  
  13.          */   
  14.          //接收代码;   
  15.          var bytes:ByteArray = new  ByteArray();  
  16. socket.readBytes(bytes);  
  17. bytes.uncompress();  
  18. var object:Object = bytes.readObject(); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值