1.什么是RPC

RPC是一种进程间的通讯方式,全称是“远程调用过程”。

当客户端向服务器发出请求时,并不是至直接发送给目标服务器,而是发送给RPC Server,由RPC Server进行调度。

RPC提供与调用本地方法无差别的远程调用方法。

2.Hprose简介

Hprose是一个轻量级的高性能跨语言RPC服务框架;提供同步,异步,写成等多种调用方式。

Hprose的简单架构如下图所示

3.Hprose具体实例

Hprose支持多种协议,以下展示多种协议中demo

1)Http协议

客户端:

require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

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

服务器:

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协议

客户端:

require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

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

服务器:

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服务器

客户端:

require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

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

服务器:

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 客户端

客户端:

require_once "vendor/autoload.php";

use Hprose\Swoole\Client;

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

服务器:

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

hprose-php教程,Swoole学习笔记(六):Hprose入门相关推荐

  1. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  2. 《Solid Edge高级应用教程》学习笔记

    <Solid Edge高级应用教程>学习笔记 第一章.绪论 第一节.CAD概论 计算机辅助设计(Computer Aided Design,简称CAD)是一种用计算机硬件.软件系统辅助人们 ...

  3. 26Play框架教程1学习笔记

    Play框架教程1学习笔记 文章目录 1play教程 第一课 1.1 play是什么 1.2 REST风格是什么 1.3 play的优点和缺点 2 play教程 第二课 2.1 搭建开发环境 2.1. ...

  4. Java之GUI编程学习笔记六 —— AWT相关(画笔paint、鼠标监听事件、模拟画图工具)

    Java之GUI编程学习笔记六 -- AWT相关(画笔paint) 参考教程B站狂神https://www.bilibili.com/video/BV1DJ411B75F 了解paint Frame自 ...

  5. python编程16章教程_Python学习笔记__16.2章 TCP编程

    # 这是学习廖雪峰老师python教程的学习笔记 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算 ...

  6. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  7. 前端获取div里面的标签_web前端教程JavaScript学习笔记DOM

    web前端教程JavaScript学习笔记 DOM一DOM(Document Object Model): 文档对象模型 其实就是操作 html 中的标签的一些能力 我们可以操作哪些内容 获取一个元素 ...

  8. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  9. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  10. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

最新文章

  1. NLP模型BERT和经典数据集!
  2. 来自mooon的最简单的日志类CSimpleLogger
  3. mysql auto_increment建表_在mysql表中创建一个ID auto_increment(在事实之后)
  4. 数据结构与算法笔记(十五)—— 散列(哈希表)
  5. 软考考试仅剩几天,如何冲刺?
  6. 兰州大学第一届 飞马杯 ★★快乐苹果树★★ 树链剖分 + 懒标记 + 树状数组
  7. mysql查询时间段内的数据
  8. Linux命令之reset - 终端屏幕混乱的终结者
  9. React 折腾记 - (1) React Router V4 和antd侧边栏的正确关联及动态title的实现
  10. 设计模式---外观模式(C++实现)
  11. 搭建Cocos2d-js开发环境(Window)
  12. pandas读取csv文件数据并对数据求和使用matplotlib画饼图
  13. 数字图像处理 冈萨雷斯(第四版)图像分辨率及大小,灰度级变化的影响,以及邻接、连通、区域和边界笔记
  14. 计算机it dt ct基础知识,ot是什么意思,什么是CT,IT,DT,OT
  15. ubuntu code::blocks 汉化(附汉化包)
  16. phpstudy配置sg11
  17. win10系统,安装Photoshop_CS6并且无需序列号破解
  18. 通过纯CSS实现文字前添加图片
  19. 电脑安装android4.0虚拟机,尝鲜Android 4.0 PC端虚拟机安装指南
  20. java 事物 notsupport_Spring事务传播属性介绍(二).mandatory、not_supported、never、supports...

热门文章

  1. 使用密码查看器查看软件的密码
  2. SU插件|实时联动Lumion LiveSync for SketchUp免费下载(渲染器与草图大师模型同步更新)
  3. ubuntu查看端口
  4. Ubuntu下搭建android开发环境
  5. 黑莓手机刷机经验一点
  6. 自动写诗APP项目、基于python+Android实现(技术:LSTM+Fasttext分类+word2vec+Flask+mysql)第二节
  7. 中专计算机教师天涯,天涯里有教职高或中专的教师吗?你们现在过得好吗~~
  8. BlackBerry黑莓7230/7290等常用的功能简介以及技巧分类【转载】
  9. 李明洋十讲学会ADS教学课程笔记
  10. net学习:使用srvany.exe把控制台程序安装成windows服务