2024-04-29 00:11:48 发布
网友
Flash如何通过AMF与服务器上的服务/脚本通信?在
关于Python/Perl/PHP的AMF libraries,它比.NET/Java更容易开发:
关于典型的AMF功能:
谢谢你的时间。在
我唯一熟悉的AMF库是PyAMF,到目前为止,它非常适合使用。以下是您对PyAMF问题的回答:
我想你可以把它当作一个脚本来运行(你是说像CGI吗?),但IMO最简单的方法是专门为AMF请求设置应用服务器
最简单的方法是用纯python定义函数,PyAMF包装这些函数来序列化传入/传出的AMF数据
如果需要的话,可以通过套接字进行通信,但是同样,使用纯Python函数是最简单的;套接字的一个用途是保持开放的连接并将数据“推送”到客户端,请参见this示例
下面是一个在localhost:8080上提供服务的三个简单AMF服务的示例:
localhost:8080
from wsgiref import simple_server from pyamf.remoting.gateway.wsgi import WSGIGateway ## amf services ################################################## def echo(data): return data def reverse(data): return data[::-1] def rot13(data): return data.encode('rot13') services = { 'myservice.echo': echo, 'myservice.reverse': reverse, 'myservice.rot13': rot13, } ## server ######################################################## def main(): app = WSGIGateway(services) simple_server.make_server('localhost', 8080, app).serve_forever() if __name__ == '__main__': main()
我绝对推荐PyAMF。查看examples,看看它有什么功能,代码是什么样子的。在
How does Flash communicate with services / scripts on servers via AMF?
数据通过TCP/IP连接传输。有时会使用现有的HTTP连接,在其他情况下,会为AMF数据打开一个新的TCP/IP连接。当打开HTTP或其他TCP连接时,可能会使用sockets接口。AMF肯定会通过某种TCP连接进行传输,而sockets接口实际上是打开这种连接的唯一方法。在
传输的“数据”由ECMA脚本(Javascript(tm))数据类型组成,如“integer”、“string”、“object”等。在
对于如何将对象编码为二进制的技术规范,Adobe发布了一个规范:AMF 3.0 Spec at Adobe.com
通常,AMF使用客户机/服务器系统的工作方式如下:
例如,如果用户单击UI中的“发送邮件”按钮,则客户端代码可能会执行以下操作:
public class UICommandMessage extends my.CmdMsg { public function UICommandMessage(action:String, arg: String) { this.cmd = action; this.data = String; } }
之后:
在服务器代码中,服务器也在监视传入的AMF对象的连接。它接收消息,并将控制权传递给适当的响应函数。这叫做“发送消息”。在
有了更多关于你想要完成什么的信息,我可以给你更多有用的细节。在
我唯一熟悉的AMF库是PyAMF,到目前为止,它非常适合使用。以下是您对PyAMF问题的回答:
我想你可以把它当作一个脚本来运行(你是说像CGI吗?),但IMO最简单的方法是专门为AMF请求设置应用服务器
最简单的方法是用纯python定义函数,PyAMF包装这些函数来序列化传入/传出的AMF数据
如果需要的话,可以通过套接字进行通信,但是同样,使用纯Python函数是最简单的;套接字的一个用途是保持开放的连接并将数据“推送”到客户端,请参见this示例
下面是一个在
localhost:8080
上提供服务的三个简单AMF服务的示例:我绝对推荐PyAMF。查看examples,看看它有什么功能,代码是什么样子的。在
数据通过TCP/IP连接传输。有时会使用现有的HTTP连接,在其他情况下,会为AMF数据打开一个新的TCP/IP连接。当打开HTTP或其他TCP连接时,可能会使用sockets接口。AMF肯定会通过某种TCP连接进行传输,而sockets接口实际上是打开这种连接的唯一方法。在
传输的“数据”由ECMA脚本(Javascript(tm))数据类型组成,如“integer”、“string”、“object”等。在
对于如何将对象编码为二进制的技术规范,Adobe发布了一个规范:AMF 3.0 Spec at Adobe.com
通常,AMF使用客户机/服务器系统的工作方式如下:
例如,如果用户单击UI中的“发送邮件”按钮,则客户端代码可能会执行以下操作:
之后:
^{pr2}$在服务器代码中,服务器也在监视传入的AMF对象的连接。它接收消息,并将控制权传递给适当的响应函数。这叫做“发送消息”。在
有了更多关于你想要完成什么的信息,我可以给你更多有用的细节。在
相关问题 更多 >
编程相关推荐