擅长:python、mysql、java
<blockquote>
<p>How does Flash communicate with services / scripts on servers via AMF?</p>
</blockquote>
<p>数据通过TCP/IP连接传输。有时会使用现有的HTTP连接,在其他情况下,会为AMF数据打开一个新的TCP/IP连接。当打开HTTP或其他TCP连接时,可能会使用sockets接口。AMF肯定会通过某种TCP连接进行传输,而sockets接口实际上是打开这种连接的唯一方法。在</p>
<p>传输的“数据”由ECMA脚本(Javascript(tm))数据类型组成,如“integer”、“string”、“object”等。在</p>
<p>对于如何将对象编码为二进制的技术规范,Adobe发布了一个规范:<a href="http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf" rel="nofollow noreferrer" title="AMF 3.0 Spec at Adobe.com">AMF 3.0 Spec at Adobe.com</a></p>
<p>通常,AMF使用客户机/服务器系统的工作方式如下:</p>
<ol>
<li>客户端显示一些用户界面并打开到服务器的TCP连接。在</li>
<li>服务器向客户机发送一些数据,客户机更新其用户界面。在</li>
<li>如果用户发出命令,客户机通过TCP连接向服务器发送一些数据。在</li>
<li>继续步骤2-3,直到用户退出。在</li>
</ol>
<p>例如,如果用户单击UI中的“发送邮件”按钮,则客户端代码可能会执行以下操作:</p>
<pre>public class UICommandMessage extends my.CmdMsg
{
public function UICommandMessage(action:String, arg: String)
{
this.cmd = action;
this.data = String;
}
}</pre>
<p>之后:</p>
^{pr2}$
<p>在服务器代码中,服务器也在监视传入的AMF对象的连接。它接收消息,并将控制权传递给适当的响应函数。这叫做“发送消息”。在</p>
<p>有了更多关于你想要完成什么的信息,我可以给你更多有用的细节。在</p>