Swoole学习笔记(六):Hprose入门
更新:HHH   时间:2023-1-7


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)注册服务接口并启动服务

返回web开发教程...