Swoole学习笔记(六):Hprose入门
1.什么是RPC
RPC是一种进程间的通讯方式,全称是“远程调用过程”。
当客户端向服务器发出请求时,并不是至直接发送给目标服务器,而是发送给RPC Server,由RPC Server进行调度。
RPC提供与调用本地方法无差别的远程调用方法。
2.Hprose简介
Hprose是一个轻量级的高性能跨语言RPC服务框架;提供同步,异步,写成等多种调用方式。
Hprose的简单架构如下图所示
3.Hprose具体实例
Hprose支持多种协议,以下展示多种协议中demo
1)Http协议
客户端:
<?phprequire_once "vendor/autoload.php";use Hprose\Swoole\Client;$client = Client::create('http://hprose.com/example/', false);
服务器:
<?phprequire_once "vendor/autoload.php";use Hprose\Swoole\Server;function hello($name) { return "Hello $name!";}$server = new Server();$server->addFunction('hello');$server->start();
2)TCP协议
客户端:
<?phprequire_once "vendor/autoload.php";use Hprose\Swoole\Client;$client = Client::create('tcp://127.0.0.1:1234', false);
服务器:
<?phprequire_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服务器
客户端:
<?phprequire_once "vendor/autoload.php";use Hprose\Swoole\Client;$client = Client::create('unix:/tmp/my.sock');
服务器:
<?phprequire_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 客户端
客户端:
<?phprequire_once "vendor/autoload.php";use Hprose\Swoole\Client;$client = Client::create('ws://127.0.0.1:8080/');
服务器:
<?phprequire_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)注册服务接口并启动服务
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。