1. 程式人生 > >Swoole學習筆記(六):Hprose入門

Swoole學習筆記(六):Hprose入門

proc 發出 oss demo 調用 實例 註冊 -s log

1.什麽是RPC
RPC是一種進程間的通訊方式,全稱是“遠程調用過程”。
當客戶端向服務器發出請求時,並不是至直接發送給目標服務器,而是發送給RPC Server,由RPC Server進行調度。
RPC提供與調用本地方法無差別的遠程調用方法。
技術分享圖片

2.Hprose簡介
Hprose是一個輕量級的高性能跨語言RPC服務框架;提供同步,異步,寫成等多種調用方式。
Hprose的簡單架構如下圖所示
技術分享圖片

3.Hprose具體實例
Hprose支持多種協議,以下展示多種協議中demo
1)Http協議
客戶端:

<?php
require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

$client = Client::create(‘http://hprose.com/example/‘, false);

服務器:

<?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協議
客戶端:

<?php
require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

$client = Client::create(‘tcp://127.0.0.1:1234‘, false);

服務器:

<?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)創建UNIX Socket服務器
客戶端:

<?php
require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

$client = Client::create(‘unix:/tmp/my.sock‘);

服務器:

<?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 客戶端
客戶端:

<?php
require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

$client = Client::create(‘ws://127.0.0.1:8080/‘);

服務器:

<?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)創建Hprose服務對象
2)設置服務器參數及回調函數
3)在onStart回調中初始化框架
4)在onWorkerStart回調中初始化PDO等連接
5)註冊服務接口並啟動服務

Swoole學習筆記(六):Hprose入門