先安装好hprose包和扩展,扩展安装教程地址: https://tpmecms.he4966.cn/fastadmin_show/123
https://tpmecms.he4966.cn/fastadmin_show/123
composer安装包
composer require hprose/hprose
最少2个服务器就A和B
A的api控制器 文件名Hserver.php
<?php namespace app\api\controller; use app\common\controller\Api; use Hprose\Http\Server;//需要加入的 /** * Hprose服务端 */ class Hserver extends Api { // 无需登录的接口,*表示全部 protected $noNeedLogin = ['*']; // 无需鉴权的接口,*表示全部 protected $noNeedRight = ['*']; /** * 接口测试 * */ public function xiaohe() { $server = new Server(); $server->addInstanceMethods($this); $server->debug = true; $server->crossDomain = true; $server->start(); } /** * 需要调用的方法 * */ function hello($name) { return '你好:'.$name; // $this->success('heoo', ['action' => 'test2']); } /** * 公共测试1 * */ public function test1() { return ['action' => 'test1','qq群'=>'153073132']; $this->success('返回成功', ['action' => 'test1','qq群'=>'153073132']); } /** * 受保护的方法 * * @param string $url URL * @return void */ protected function test2($url='http://tpmecms.he4966.cn') { return file_get_contents($url); } }
域名/api/hserver/xiaohe
服务B 文件名Hserve.php
<?php namespace app\api\controller; use app\common\controller\Api; //Hprose use Hprose\Client; use Hprose\InvokeSettings; use Hprose\ResultMode; /** * Hprose获取其他服务器的信息 */ class Hserve extends Api { // 这是Fastadmin 接口的属性 // 无需登录的接口,*表示全部 protected $noNeedLogin = ['*']; // 无需鉴权的接口,*表示全部 protected $noNeedRight = ['*']; public function test() { //也可建立其他的协议 自己修改地址 $client = new \Hprose\Http\Client('http://he4966.cn/api/hserver/xiaohe', false); var_export($client->hello("Hprose", new InvokeSettings(array('mode' => ResultMode::Normal)))); echo '<br>__________________'; var_export($client->test1("World", new InvokeSettings(array('mode' => ResultMode::Normal)))); echo '<br>__________________'; var_export($client->test1("World", new InvokeSettings(array('mode' => ResultMode::Serialized)))); echo '<br>__________________'; var_export($client->test1("World", new InvokeSettings(array('mode' => ResultMode::Raw)))); echo '<br>__________________'; var_export($client->test1("World", new InvokeSettings(array('mode' => ResultMode::RawWithEndTag)))); echo ("欢迎加入QQ群交流:153073132"); } }