iphone amf 客户端和服务器端

本文详细介绍了如何使用AMFPHP在服务器端和客户端之间进行通信,包括搭建WAMP服务器环境、创建服务类和服务文件、客户端代码实现及回调处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里呢,我首先要搭建服务器端服务器比较简单

我这里用的是wamp服务器集成环境,下载地址为:http://www.crsky.com/soft/10723.html

需要下载amfphp:http://sourceforge.net/projects/amfphp/files/

下载后将amfphp文件解压后的文件复制到wamp根目录服务器,一般是放在一个叫做www的文件夹中。


我们只要关心一个叫做gateway.php的文件和一个叫做services的文件夹


服务器端代码,我们在services文件夹中建立自己的服务类:代码如下,我建立了一个叫做BaseService.php文件

<?php
class BaseService
{

//对象构造函数
    function BaseService() {
        
    }
    /*
     * @param functionArr [{functionName:_local9["functionName"], params:_local9["params"], sequence:_local9["sequence"]}]
     * @param $retryCount
     */

   //这个函数就是我们要在客户端访问的方法,该方法是根据客户端的请求,执行不同的php文件,完成不同的功能并返回

    public function dispatch($request)
    {


     // 在这里可以根据$request传来的参数中的访问方法名来执行不同的php文件中代码,生成不同的对象,完成需要需求的功能

,这里是拿HelloWorld.php做个例子,因为是变量你可以自己设置。以应对变化
        $serverRootPath =$_SERVER['DOCUMENT_ROOT'];
        $commandPath = $serverRootPath."/Command";
        $commandActionPhp =  $commandPath."/HelloWorld.php";
        $command = "HelloWorld";
        include_once $commandActionPhp;


        $cmd = new $command();

//这里运行的是请求类的代码

        $res = $cmd->say($request);
//返回给客户端
        return $res;
    }
}
?>

HelloWorld.php,这个文件的路径只要放在服务器中就行,我们会包含进来的

<?php
class HelloWorld
{
    function HelloWorld()
    {
        
    }
 
    function say($sMessage)
    {
        // 'You said: ' . $sMessage;
        return $sMessage;
    }
}
?>

:该文件是在BaseService中调用的,你可以建立多个这样的文件,已完成不同的功能。


客户端代码:

ios oc

需要使用cocoaImf框架:https://github.com/nesium/cocoa-amf

加到客户端

只要实现一个代理就可以了

m_remotingCall = [[AMFRemotingCall alloc] init];
m_remotingCall.URL = [NSURL URLWithString:@"http://10.18.1.143/gateway.php"];
m_remotingCall.service = @"BaseService";//服务器端services下的php文件
m_remotingCall.delegate = self;
m_remotingCall.method = @"dispatch";//调用BaseService.php文件中的访问dispatch
m_delegate = nil;

访问:
m_remotingCall.arguments = [NSArray arrayWithObject:@"123456789abcde"];
[m_remotingCall start];

回调:

- (void)remotingCallDidFinishLoading:(AMFRemotingCall *)remotingCall 
receivedObject:(NSObject *)object
{
//objc_msgSend(m_delegate, @selector(callerDidFinishLoading:receivedObject:), self, object);
NSLog(@"message:%@",object);//返回的是123456789abcde,成功了
}

- (void)remotingCall:(AMFRemotingCall *)remotingCall didFailWithError:(NSError *)error
{
objc_msgSend(m_delegate, @selector(caller:didFailWithError:), self, error);
}











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值