您好,登錄后才能下訂單哦!
1.什么是RPC
RPC是一種進(jìn)程間的通訊方式,全稱(chēng)是“遠(yuǎn)程調(diào)用過(guò)程”。
當(dāng)客戶(hù)端向服務(wù)器發(fā)出請(qǐng)求時(shí),并不是至直接發(fā)送給目標(biāo)服務(wù)器,而是發(fā)送給RPC Server,由RPC Server進(jìn)行調(diào)度。
RPC提供與調(diào)用本地方法無(wú)差別的遠(yuǎn)程調(diào)用方法。
2.Hprose簡(jiǎn)介
Hprose是一個(gè)輕量級(jí)的高性能跨語(yǔ)言RPC服務(wù)框架;提供同步,異步,寫(xiě)成等多種調(diào)用方式。
Hprose的簡(jiǎn)單架構(gòu)如下圖所示
3.Hprose具體實(shí)例
Hprose支持多種協(xié)議,以下展示多種協(xié)議中demo
1)Http協(xié)議
客戶(hù)端:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Client;
$client = Client::create('http://hprose.com/example/', false);
服務(wù)器:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Server;
function hello($name) {
return "Hello $name!";
}
$server = new Server();
$server->addFunction('hello');
$server->start();
2)TCP協(xié)議
客戶(hù)端:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Client;
$client = Client::create('tcp://127.0.0.1:1234', false);
服務(wù)器:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Server;
function hello($name) {
return "Hello $name!";
}
$server = new Server("tcp://0.0.0.0:1234");
$server->addFunction('hello');
$server->start();
3)創(chuàng)建UNIX Socket服務(wù)器
客戶(hù)端:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Client;
$client = Client::create('unix:/tmp/my.sock');
服務(wù)器:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Server;
function hello($name) {
return "Hello $name!";
}
$server = new Server("unix:/tmp/my.sock");
$server->addFunction('hello');
$server->start();
4)異步的 WebSocket 客戶(hù)端
客戶(hù)端:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Client;
$client = Client::create('ws://127.0.0.1:8080/');
服務(wù)器:
<?php
require_once "vendor/autoload.php";
use Hprose\Swoole\Server;
function hello($name) {
return "Hello $name!";
}
$server = new Server("ws://0.0.0.0:8088");
$server->addFunction('hello');
$server->start();
4.Hprose-Swoole
Hprose-Swoole支持swoole的on,set,listen方法
使用步驟如下:
1)創(chuàng)建Hprose服務(wù)對(duì)象
2)設(shè)置服務(wù)器參數(shù)及回調(diào)函數(shù)
3)在onStart回調(diào)中初始化框架
4)在onWorkerStart回調(diào)中初始化PDO等連接
5)注冊(cè)服務(wù)接口并啟動(dòng)服務(wù)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。