加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

用swoole框架实现WebService和远程接口调用RPC

发布时间:2020-12-17 01:18:24 所属栏目:安全 来源:网络整理
导读:利用Swoole框架中提供的WebService类和RestClient类,可以很方便地实现Webservice和远程接口调用。 可以用在,网站对外提供API,或者大型网站系统内部不同模块之间接口调用。 代码简洁易懂,支持远程函数调用,面向对象的方法、属性编程 ? 服务器端: ?phpre

利用Swoole框架中提供的WebService类和RestClient类,可以很方便地实现Webservice和远程接口调用。

可以用在,网站对外提供API,或者大型网站系统内部不同模块之间接口调用。

代码简洁易懂,支持远程函数调用,面向对象的方法、属性编程

?

服务器端:

<?php
require '../../config.php';
require LIBPATH.'/system/WebService.php';

$web = new WebService;

//设定可远程调用的客户端IP
$web->access_ip[] = '127.0.0.1';
$web->access_ip[] = '192.168.1.102';
//注册函数
$web->reg_func('testme','test');
//注册类
$web->reg_class('world','Foo');
//注册验证方式
$web->reg_auth('rpc_user_check');
//运行
$web->run();

/**
 * 检测用户是否有权限进行远程调用
 * @param $user
 * @param $pass
 * @return unknown_type
 */
function rpc_user_check($user,$getpass)
{
    //这里也可以换成查询数据库表的操作
    $passdb['test'] = '123456';

    //存在用户,而且密码正确
    $passhash = Auth::mkpasswd($user,$passdb[$user]);
    if(isset($passdb[$user]) and $passhash==$getpass) return true;
    else return false;
}

function test($name)
{
    return array('hello','world!');
}

class Foo
{
    public $index;

    function getinfo($param)
    {
        return 'my index is '.$this->index.'; param :'.$param;
    }
}

?客户端:

<?php
require '../../config.php';
import('#web.RestClient');

$server_url = "http://top.com/test/web/rpc.php";
$user = 'test';
$pass = '123456';
$rest = new RestClient($server_url,$user,$pass);
//$rest->debug = true;

$result1 = $rest->func('testme');

$obj = $rest->create('world');
$obj->index = 'page';
$result2 = $obj->getinfo('delete');

debug($result1,$result2);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读