這篇文章主要介紹了Laravel Hprose RPC服務的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務源城,10多年網(wǎng)站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
Laravel Hprose RPC 服務
開源地址:https://github.com/flc1125/laravel-hprose
該項目支持 Laravel 及非 Laravel 項目使用,支持 php >= 5.3
版本語法
注:以下內容,默認你對 Hprose 已經有了一定了解。內容基于 Laravel 項目介紹。
環(huán)境依賴 C 擴展 hprose
,詳見:Hprose 官網(wǎng)、Hprose Pecl 擴展
服務端安裝即可,客戶端可不安裝
pecl install hprose
安裝擴展包
composer require flc/laravel-hprose
Laravel >= 5.5
已增加包自動發(fā)現(xiàn)。舊版本,請手動設置
在 config/app.php
文件下加入服務提供者
'providers' => [ ... Flc\Laravel\Hprose\HproseServiceProvider::class, ]
在 config/app.php
文件下加入門面
'aliases' => [ ... 'HproseRoute' => Flc\Laravel\Hprose\Facades\HproseRoute::class, 'HproseServer' => Flc\Laravel\Hprose\Facades\HproseServer::class, 'HproseClient' => Flc\Laravel\Hprose\Facades\HproseClient::class, ]
php artisan hprose:generator
執(zhí)行完成后,會分別生成以下文件:
路由服務提供者:app/Providers/HproseRouteServiceProvider.php
路由文件:routes/hprose.php
(該路由文件非 Laravel 路由,下文簡稱 Hprose 路由
)
Hprose 路由控制器根目錄默認在:app/Http/Controllers/Hprose
目錄下,可自行在app/Providers/HproseRouteServiceProvider.php
調整
在 config/app.php
文件下加入默認的 Hprose 路由服務提供者
'providers' => [ ... app\Providers\HproseRouteServiceProvider::class, ]
php artisan vendor:publish --provider="Flc\Laravel\Hprose\HproseServiceProvider"
執(zhí)行后,會生成配置文件路徑:/config/hprose.php
配置文件路徑:/config/hprose.php
[ 'default' => 'http', 'connections' => [ 'http' => [ 'protocol' => 'http', ], ], ], 'client' => [ 'default' => 'http', 'connections' => array( 'http' => array( 'protocol' => 'http', 'uri' => 'http://192.168.2.67:9001/api/server', // 此處為服務端的連接地址 'async' => false, ), ), ] ];
目前版本,除客戶端配置中的遠程服務器地址外,其他配置默認即可
其他均為后續(xù)支持swoole-http
、tcp
、websocket
等,做提前架設
增加一個 Laravel 路由,用于啟動 Http 服務,如:
對應控制器:
start(); } }訪問:http://localhost/hprose-server
Hprose 路由配置
option(['...']);Controller@tests
的方法自行定義客戶端
tests('tests'); // 其他連接 $result = HproseClient::connection()->tests->one('tests'); print_r($result); } }非 Laravel 項目使用
服務端
group(['prefix' => 'tests', 'namespace' => 'App\\Controllers'], function ($router) { $router->add('one', 'Controller@one'); $router->add('two', 'Controller@two')->option(['...']); $router->group(['prefix' => 'group'], function ($router) { $router->add('one', 'Controller@group_one'); ... }); }); $app = [ 'config' => [ 'hprose.server.default' => 'http', 'hprose.server.connections' => [ 'http' => [ 'protocol' => 'http', ], ], ], ]; $server = new \Flc\Laravel\Hprose\Server($app); $server->setRouter($router)->start();客戶端
[ 'hprose.client.default' => 'http', 'hprose.client.connections' => [ 'http' => [ 'protocol' => 'http', 'uri' => 'http://localhost/server.php', 'async' => false ] ] ] ]; $client = new \Flc\Laravel\Hprose\Client($app); print_r($client->tests->one('222').PHP_EOL);感謝你能夠認真閱讀完這篇文章,希望小編分享的“Laravel Hprose RPC服務的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!
分享題目:LaravelHproseRPC服務的示例分析
網(wǎng)站URL:http://weahome.cn/article/ppiceh.html