1. 客戶端(client)代碼(記得該引入的文件記得引入,我這邊是用Yii框架且composer安裝Hprose,會自動加載所以沒有寫引入的代碼)
public function actionHprose()
{
$client = \Hprose\Http\Client::create('http://127.0.0.1:905/hprose.php', false);
echo $client->hello()."----";
echo $client->foo('Hprose Second !')."----";
echo $client->thirdFoo()."----";
}
成功的標誌:如圖所示
2. 服務端(server)代碼(如用框架,得將csrf,七七八八驗證關掉,不然客戶端不能成功訪問)
①簡單的函數
<?php
require_once "../vendor/autoload.php";
$server = new \Hprose\Http\Server();
//函數一
function hello()
{
return 'Hello Hprose!';
}
//函數二
function foo($name)
{
return 'Hello '.$name;
}
//函數三
function thirdFoo()
{
return 'Hello Hprose!';
}
$server->addFunctions(array('hello', 'foo'));//同時發佈兩個函數
$server->addFunction('thirdFoo');//發佈一個函數
$server->start();
成功的標誌(如圖所示):
②類的靜態函數和對象實例的方法
//類的靜態方法和對象實例的方法
class HproseTest {
//類的靜態方法
static function foo1()
{
return 'foo';
}
function hello()
{
return 'Hello Hprose!';
}
};
$server->addMethod('foo1', 'HproseTest');
$server->addMethod('hello', new HproseTest());
$server->start();
成功的標誌(如圖所示):