RPC是啥? 远程过程调用, 简单来说就是 另一种api调用的形式, 不过是在tcp层次的。

例子:

php 7.2.9

composer 1.8.5

composer.json

{

"name": "hprose/examples",

"description": "examples of hprose",

"authors": [

{

"name": "frans",

"email": "dafa1680@gmail.com"

}

],

"require": {

"php": ">=7.0",

"hprose/hprose": "^2.0"

}

}

server.php

require './vendor/autoload.php';

function hello($name)

{

return "Hello " . $name . PHP_EOL;

}

use Hprose\Socket\Server;

$server = new Server("tcp://0.0.0.0:1314");

$server->setErrorTypes(E_ALL);

$server->setDebugEnabled();

$server->addFunction('hello');

$server->start();

client.php

require_once "./vendor/autoload.php";

use \Hprose\Future;

use \Hprose\Socket\Client;

$test = new Client("tcp://127.0.0.1:1314");

$test->fullDuplex = true;

Future\co(function () use ($test) {

try {

var_dump((yield $test->hello("yield world1")));

var_dump((yield $test->hello("yield world2")));

var_dump((yield $test->hello("yield world3")));

var_dump((yield $test->hello("yield world4")));

var_dump((yield $test->hello("yield world5")));

var_dump((yield $test->hello("yield world6")));

} catch (\Exception $e) {

echo $e->getMessage() . PHP_EOL;

echo $e->getTraceAsString();

}

});

最后跑起来:

php server.php // 没有输出,会常驻进程, 如果有输出那就是报错啦。

php client.php // 输出:

E:\rpc\hprose-php>php client.php

E:\rpc\hprose-php\client.php:12:

string(20) "Hello yield world1

"

E:\rpc\hprose-php\client.php:13:

string(20) "Hello yield world2

"

E:\rpc\hprose-php\client.php:14:

string(20) "Hello yield world3

"

E:\rpc\hprose-php\client.php:15:

string(20) "Hello yield world4

"

E:\rpc\hprose-php\client.php:16:

string(20) "Hello yield world5

"

E:\rpc\hprose-php\client.php:17:

string(20) "Hello yield world6

"

完毕!

hprose-php教程,PHP RPC框架 hprose 上手玩玩相关推荐

  1. 手撸一个RPC框架——傻瓜式教程(一)

    RPC框架-傻瓜式教程(一) 前言,太久没写博客了,有点手生,总结一下自己对RPC框架的学习过程 首先我们知道RPC的全名是,全程服务调用,我们用它来做什么,简单地说就是客户端通过接口调用服务端的函数 ...

  2. 支撑微博千亿调用的轻量级RPC框架:Motan

    随着微博容器化部署以及混合云平台的高速发展,RPC 在微服务化的进程中越来越重要,对 RPC 的需求也产生了一些变化.今天主要介绍一下微博 RPC 框架 Motan,以及为了更好的适应混合云部署所做的 ...

  3. 开源 RPC 框架有哪些

    一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的. 跟语言平台绑定的开源 RPC 框架主要有下面几种. Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末 ...

  4. JAVA RPC 生产级高可用RPC框架使用分享

    先放出链接,喜欢的给个star:https://gitee.com/a1234567891/koalas-rpc 一:项目介绍 koalas-RPC 个人作品,提供大家交流学习,有意见请私信,欢迎拍砖 ...

  5. 【万字长文】Dubbo 入门总结 ,一款高性能的 Java RPC 框架

    这篇文章是我学习整理 Dubbo 的一篇文章,首先大部分内容参考了官网 + 某硅谷的视频,内容讲解进行了重新编排,40多张图片,也都是我修改重制的,虽然一万多字,但是其实也可以看出来,更多的内容集中在 ...

  6. 流行的rpc框架性能测试对比

    本文转载自鸟窝的博客 流行的rpc框架benchmark 2018新春版 目录 [−] 本文测试的RPC框架 测试场景 模拟业务处理时间 测试数据 测试client 测试指标 测试环境 测试结果 处理 ...

  7. rpc介绍,和PHP常用的rpc框架

    什么是rpc框架 先回答第一个问题:什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 通常我们调用一个PHP中的方法,比如 ...

  8. 从零开始写一个RPC框架的详细步骤

    http://blog.csdn.net/liu88010988/article/details/51547592 定位 所谓定位就是回答几个问题,我出于什么目的要写一个框架,我的这个框架是干什么的, ...

  9. 微博轻量级RPC框架Motan

    Motan 正式开源了,项目地址为https://github.com/weibocom/motan.微博技术团队希望未来能有更多优秀的开源人入驻,并进一步完善优化. 微博轻量级RPC框架Motan正 ...

  10. php中流行的rpc框架有哪些?

    什么是rpc框架 先回答第一个问题:什么是RPC框架? 如果用一句话概括RPC就是:远程调用框架(Remote Procedure Call) 那什么是远程调用? 通常我们调用一个php中的方法,比如 ...

最新文章

  1. 关于C#中编译器保证变量必须初始化规则猜想
  2. 使用ES6的Promise完美解决回调地狱
  3. 交通工程专业的计算机论文,交通工程(毕业论文).doc
  4. SAP FI 会计凭证过账bapi BAPI_ACC_DOCUMENT_POST
  5. pomelo 分布式聊天入门客户端demo(c#)
  6. cupload怎么保存图片_图片标注软件labelImg使用指南
  7. oracle命令分析3
  8. Logistic回归分析
  9. 程序带来这些新的机会,创业新浪潮才刚开始!
  10. 手机vnc连接云服务器,云服务器管理终端(VNC连接)说明
  11. 这篇文章感触很深,就作为第一篇吧
  12. 【东南大学主办: IEEE ICSIP 2022】信号与图像处理热门主题,7月邀您相约苏州
  13. 四川地区办理增值电信经营许可证
  14. 解决打开文件、文件夹、拖拽复制删除时鼠标卡顿
  15. 灵魂深处的眼泪 秋枫
  16. Nginx+Tomcat+Redis负载均衡实现Session共享
  17. vue里面提到的挂载是什么意思?
  18. 面向对象程序设计第三次实验课——Wuxing
  19. vue+element-ui+js页面打印(打印elementui的table)
  20. 软件源码复杂度度量方法

热门文章

  1. 影驰名人堂送的机器人_6999元纯白信仰!影驰GTX 1080 Ti HOF名人堂评测
  2. 51单片机c语言实训报告总结,单片机实训心得体会
  3. 华为 华三 思科常用命令
  4. 墨西哥FBA海运头程货代,墨西哥海运几天到?
  5. python入门(三) 实现QQ自动发送消息
  6. struts2拦截器的使用及作用
  7. Kali扫描工具Nmap
  8. 联想三大业务收入下滑,刘军回归能重振业绩吗
  9. windows 好用软件推荐
  10. Linux环境下命令行下载DM8