温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Swoole学习笔记(六):Hprose入门

发布时间:2020-07-25 15:23:46 来源:网络 阅读:625 作者:liuxu1992 栏目:web开发

1.什么是RPC
RPC是一种进程间的通讯方式,全称是“远程调用过程”。
当客户端向服务器发出请求时,并不是至直接发送给目标服务器,而是发送给RPC Server,由RPC Server进行调度。
RPC提供与调用本地方法无差别的远程调用方法。
Swoole学习笔记(六):Hprose入门

2.Hprose简介
Hprose是一个轻量级的高性能跨语言RPC服务框架;提供同步,异步,写成等多种调用方式。
Hprose的简单架构如下图所示
Swoole学习笔记(六):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)注册服务接口并启动服务

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI