PHP平台的AFM-RPC实现----amfphp(二)HelloWorld范例
2014-04-11 00:26
453 查看
第一部分讲了amfphp环境配置::http://hi.baidu.com/taotao5453/blog/item/ef942a1f3623e0c5a68669b5.html
这里开始做一个简单的amfphp实现Flex和PHP通信的例子。请安装第一部分配置好amfphp环境再进行下面代码。
1、服务端
在C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\3jk\AMFApp\org\zangsanfeng下新建一个HelloWorld.php,并写入代码:
<?php
class HelloWorld
{
function HelloWorld()
{
$this->methodTable = array (
'sayHelloWorld' => array (
'description' => '将字符串 “嗨!AMF-FPC for PHP”返回给Flex',
'access' => 'remote',
'arguments' => array()
)
);
}
function sayHelloWorld()
{
return "嗨!AMF-RPC for PHP";
}
}
?>
2、Flex客户端
使用Flash Builder或Flex3 新建一个Flex工程,next步骤参考下面三图:
注意:Flex sdk选择4.0以下版本,我的sdk是项目创建完后更改的,我用的sdk3.5。
-
-
-
创建完成后,在main.mxml中添加代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function getData_Result(e:ResultEvent):void{
myTextArea.text = e.result.toString();
}
private function getData_Fault(e:FaultEvent):void{
myTextArea.text = e.fault.faultString;
}
]]>
</mx:Script>
<mx:RemoteObject id="myService" destination="amfphp"
endpoint="http://localhost/3jk/gateway.php"
source="org.zangsanfeng.HelloWorld" showBusyCursor="true">
<mx:method name="sayHelloWorld" result="getData_Result(event)" fault="getData_Fault(event)"/>
</mx:RemoteObject>
<mx:TextArea id="myTextArea" fontSize="12"/>
<mx:Button label="调用方法" fontSize="12" click="myService.sayHelloWorld();"/>
</mx:Application>
开始调试,调试页面中点击“调用方法”按钮,就会调用远程方法,并将返回结果“嗨!AMF-RPC
for PHP”显示在文本框中。如图:
-
AMFPHP简单原理:
在客户端,服务端方法请求被使用RemoteObject类自动序列化为AMF格式,在服务端,AMFPHP逆序列化AMF信息。当服务端完成处理时,结果又被序列化为AMF格式,并发回Flex应用程序。服务端创建的AMF信息格式与客户端创建的AMF信息格式相同。单独的AMF信息包主体内包含了错误或响应对象,它们被表述成一个ActionScript对象。
这里开始做一个简单的amfphp实现Flex和PHP通信的例子。请安装第一部分配置好amfphp环境再进行下面代码。
1、服务端
在C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\3jk\AMFApp\org\zangsanfeng下新建一个HelloWorld.php,并写入代码:
<?php
class HelloWorld
{
function HelloWorld()
{
$this->methodTable = array (
'sayHelloWorld' => array (
'description' => '将字符串 “嗨!AMF-FPC for PHP”返回给Flex',
'access' => 'remote',
'arguments' => array()
)
);
}
function sayHelloWorld()
{
return "嗨!AMF-RPC for PHP";
}
}
?>
2、Flex客户端
使用Flash Builder或Flex3 新建一个Flex工程,next步骤参考下面三图:
注意:Flex sdk选择4.0以下版本,我的sdk是项目创建完后更改的,我用的sdk3.5。
-
-
-
创建完成后,在main.mxml中添加代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function getData_Result(e:ResultEvent):void{
myTextArea.text = e.result.toString();
}
private function getData_Fault(e:FaultEvent):void{
myTextArea.text = e.fault.faultString;
}
]]>
</mx:Script>
<mx:RemoteObject id="myService" destination="amfphp"
endpoint="http://localhost/3jk/gateway.php"
source="org.zangsanfeng.HelloWorld" showBusyCursor="true">
<mx:method name="sayHelloWorld" result="getData_Result(event)" fault="getData_Fault(event)"/>
</mx:RemoteObject>
<mx:TextArea id="myTextArea" fontSize="12"/>
<mx:Button label="调用方法" fontSize="12" click="myService.sayHelloWorld();"/>
</mx:Application>
开始调试,调试页面中点击“调用方法”按钮,就会调用远程方法,并将返回结果“嗨!AMF-RPC
for PHP”显示在文本框中。如图:
-
AMFPHP简单原理:
在客户端,服务端方法请求被使用RemoteObject类自动序列化为AMF格式,在服务端,AMFPHP逆序列化AMF信息。当服务端完成处理时,结果又被序列化为AMF格式,并发回Flex应用程序。服务端创建的AMF信息格式与客户端创建的AMF信息格式相同。单独的AMF信息包主体内包含了错误或响应对象,它们被表述成一个ActionScript对象。
相关文章推荐
- LAMP平台实现之PHP加速,xcache
- 微信/易信公共平台开发(二):自定义菜单的PHP实现(提供源码)
- php 验证码实现范例 smarty html
- java和php实现JSON-RPC 实例
- PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
- 微信第三方平台推送verify_ticket的接收处理(PHP实现)
- PHP+MySQL微信通过jsapi分享到朋友圈等平台,实现设置图片、链接。
- php扩展,一个helloworld的实现
- AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
- 基于Docker容器和PHP技术的简易多人在线编程平台(云IDE)的实现
- php token命令的简单实现,可用于网站平台的对接
- Android案例之新闻客户端和服务器端采用php+mysql实现,完全属于自己的新闻展示平台
- PHPRPC for php 登陆的实现
- 基于Centos 6.5 配置分离式LAMP平台环境的一次扩展实现多PHP Apache和自建DNS来提升LAMP的负载
- 系统间通信:基于TCP协议的RPC实现范例
- 简单的RPC编程实践——HelloWorld的实现
- php实现window平台的checkdnsrr函数
- 系统间通信:基于TCP协议的RPC实现范例