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)注册服务接口并启动服务
原文地址:https://blog.51cto.com/9443450/2388866
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。