`
wsliujian
  • 浏览: 95104 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Python对amf的支持

阅读更多
Python通过第三方库对amf进行支持,支持常用的数据类型。
使用amf进行数据传输不用在为拼字符串而烦恼。已对象的方式传输,对程序更友好。
那先看下客户端的代码
var socket:Socket=new Socket();
socket.objectEncoding=ObjectEncoding.AMF3;
var obj:Object=new Object();
socket.writeObject(obj);
下面是接受端的代码
var obj:Object=this.bytesAvailable?this.readObject():new Object();
这样就可以接受服务器返回的对象了。
下面是具体的python端的代码,首先要导入twisted框架,支持很多socket模型
如select,icop等模型。
import os
import sys
EnumIOCP = ['nt']
EnumEPOLL = ['posix', 'mac', 'os2', 'ce', 'java', 'riscos']

if os.name in EnumIOCP:
    from twisted.internet import iocpreactor
    iocpreactor.reactor.install()
elif os.name in EnumEPOLL:
    from twisted.internet import epollreactor
    epollreactor.install()
rom twisted.internet.protocol import Factory,Protocol
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor

import pyamf

初始化的时候要指定设置amf
        self.amfencoding=pyamf.AMF3
        self.amfencoder=pyamf.get_encoder(self.amfencoding)
        self.amfstream=self.amfencoder.stream
下面的代码是判断跨域文件,如果文件访问的域名下没有提供跨域文件,测直接仿照一个跨域文件。
  def dataReceived(self, data):
        if data=='<policy-file-request/>\0':
            self.transport.write(SocketPolicyFactory.Policy_file)
        else:
            self.factory.sendAll(data,self)
下面是关键的发生到客户端的代码
def sendObjectToSWF(self,asobj):
        self.amfstream.truncate()
        self.amfencoder = pyamf.get_encoder(self.amfencoding)
        self.amfencoder.writeElement(pyamf.ASObject(asobj))
        self.transport.write(self.amfencoder.stream.getvalue())
分享到:
评论

相关推荐

    amf.zip_AMF_amf_python

    5. **自定义类型支持**:允许用户注册自定义的Python类,并指定它们在AMF中的表示方式,以支持更复杂的数据结构和业务逻辑。 6. **兼容性**:确保库对不同AMF版本的兼容性,可能包括AMF0和AMF3,以适应不同的服务器...

    flex python通过PyAMF通信

    PyAMF-0.6.1版本是该库的一个稳定版本,它提供了对AMF0和AMF3两种协议的支持,这使得PyAMF可以与Flex的AMF通信机制完美对接。 首先,让我们理解AMF。AMF是一种轻量级、快速的序列化协议,它能够将复杂的数据结构如...

    amf0 原版文档 完整版

    6. **兼容性**:AMF0是Adobe Flash Player和Flex SDK之间的标准通信协议,但也有第三方库支持其他平台的AMF0实现,如Python、Java和PHP等。 7. **安全性**:虽然AMF0提供了高效的传输方式,但它并不提供内置的安全...

    python PyAmf安装包

    PyAMF支持AMF0和AMF3两种版本,提供了对XMLSocket、HTTP服务以及Remoting的支持。 AMF是一种二进制数据格式,用于在服务器和客户端之间传输数据,相比于XML和JSON等文本格式,AMF能提供更高的性能和更低的带宽消耗...

    python语言web之旅(python, mod_python, pyamf, flex, apache)

    它支持多种Web框架,如Django、Flask、Pyramid等,提供高效且易于维护的解决方案。 2. mod_python: mod_python是Apache服务器的一个模块,它允许Python代码直接在Web服务器内部运行,提高了性能和响应速度。通过将...

    使用Flex 4、Django、Python和PyAMF开发项目示例

    Python以其简洁的语法和强大的库支持而闻名,PyAMF(Python Action Message Format)就是其中之一。PyAMF是一个用于Python的AMF(Action Message Format)实现,AMF是一种二进制序列化格式,常用于Adobe Flex和Flash...

    Python库 | PyAMF-0.5-py2.5-linux-x86_64.egg

    你可以将Python对象编码为AMF字节流,然后在网络上传输,或者接收AMF数据并解码为Python对象。 2. **Remoting服务**:PyAMF支持Remoting,允许Python服务与Flash客户端之间进行远程调用。通过AMF协议,可以透明地...

    flash与服务器端通信

    3. MingLe:针对Python开发的Flash服务器端库,支持XMLSocket和Flash Remoting。 六、安全性与优化 由于Flash通信的开放性,可能存在安全风险,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。因此,开发者需要在...

    FLEX 与现有开发语言的通信全面解析

    四、Flex与Python的通信:Python开发者可以使用PyAMF库,它提供了AMF的实现,使得Flex能够与Python应用程序进行低延迟的数据交换。 五、Flex与Ruby的通信:Ruby社区中的Gem如BlazeDS Ruby Adapter或Red5 Ruby ...

    red5 reference

    Red5通过AMF支持远程方法调用,这允许服务器和客户端之间以一种高效、结构化的方式进行数据交换,这在Flash应用与后端服务器通信时尤为有用。 Red5服务器的配置和文档化在文件中有详细说明。配置文件存放在服务器的...

    clockAnimation:FreeCAD,assembly4,Python的擒纵动画

    它的强大功能在于支持参数化设计,这意味着设计者可以调整一个参数,所有相关部件会自动更新,这在设计过程中节省了大量时间。 2. **Assembly4**:作为FreeCAD的一个模块,Assembly4专注于多体装配,它提供了一套...

    django_pyamf

    PyAMF是Python Action Message Format的缩写,它是一个开源库,允许Python应用程序与Adobe Flex、Air和其他AMF支持的客户端进行数据交换。Django则是一个流行的Python web框架,用于快速开发安全和可维护的网站。 ...

    微信小程序“校园集市”爬取

    Charles的主要功能包括支持SSL代理、流量控制、AJAX调试、AMF调试、重发网络请求、修改网络请求参数和截获并动态修改网络请求等。 三、爬取微信小程序数据 爬取微信小程序数据需要使用爬虫技术和Charles代理服务器...

    在Google App Engine上开发Flex应用(含简单示例源码)

    GAE提供了一个服务器端的运行环境,支持多种编程语言,如Python、Java和Go。开发者可以利用GAE的特性,如自动缩放、负载均衡和数据存储服务。在GAE上部署应用,你需要编写后端代码来处理HTTP请求,存储和检索数据,...

    apache-activemq-5.1.0-bin fms

    4. **主题(Topics)与队列(Queues)**:JMS中的两种主要消息模型,主题用于广播消息,队列则保证消息的有序传输和一对一处理。 5. **事务支持**:ActiveMQ支持本地JMS事务以及与JTA集成,确保消息处理的原子性和...

    PyAMF-开源

    PyAMF为Python提供了与Adobe Flash Player兼容的操作消息格式(AMF)支持。 它包括与Django,Pylons,Twisted,SQLAlchemy等Python网络框架的集成。 您可以从h下载最新版本

    RTMP协议框架完美实现

    RTMP支持AMF(Action Message Format)编码,用于序列化和反序列化数据,使得各种类型的数据能高效地在网络间传输。 **rtmpdump工具:** `rtmpdump`是RTMP协议的一个开源实现,由Hans-Christoph Steiner和Andreas ...

    soapui 5.1.2 pro版本

    - **协议支持**:除了SOAP和REST,还支持其他如JMS、AMF、WCF等协议。 4. **代码生成** - **客户端代码自动生成**:SOAPUI Pro能生成Java、C#、Python等多种语言的客户端代码,方便与现有项目集成。 - **代码...

Global site tag (gtag.js) - Google Analytics