workerman-json-rpc:使用workerman快速进行RPC开发的套路
来源:互联网 发布:金星秀停播原因知乎 编辑:程序博客网 时间:2024/05/22 20:41
之前我们已经简单的了解了一下『远程调用PRC』
1.Socket学习 - 撕开远程调用的逼格外衣(上)
2.Socket学习 - 撕开远程调用的逼格外衣(下)超简易仿制一个RPC客户端
二、
今天来学习一下workerman这个框架上的其他应用『Json Rpc远程调用框架』,
下载地址:http://www.workerman.net/workerman-jsonrpc
介绍:
JSON (JavaScript Object Notation)是一种用于在组件间交互信息的数据交换格式,其是以JavaScript 为基础的数据表示语言。既方便于人的读写习惯,又有利于计算机的解析和生成。
RPC(Remote Procedure Call)是远程调用,既客户端通过某种协议向服务器发起请求并获得结果。RPC使得开发分布式网络程序非常方便,并且能极大限度的将网络系统的各个部分解耦,方便后续开发、维护。
workerman-json-rpc是一个以workerman作为服务器容器,使用Json作为协议简单高效的RPC远程调用框架。
下载解压之后目录结构如下图,我们把JsonRpc
和Statistics
这2个目录的全部拷贝到 我们自己的项目中。
拷贝到jsonrpc
文件夹中,workerman
目录还是我们最原始是workerman核心包。
1.新建allserver.php
来作为我们的服务端:
<?php//引入Workerman核心包require_once 'workerman/Autoloader.php';//引入jsonRpcrequire_once 'jsonrpc/JsonRpc/start.php';
启动:
php allserver.php start
2.客户端
我们在另外一个网站(客户端)来调用我们服务端。
因为我们服务端使用的是『workerman-json-rpc』这个插件,其中也封装了客户端的代码。
我们把JsonRpc/Clients/PrcClient.php
文件拷贝到我们的客户端项目,然后新建一个test.php文件来测试
test.php:
<?phprequire_once 'RpcClient.php'; // 服务端列表$address_array = array( 'tcp://10.211.55.13:2015', //我们只有一个服务);// 配置服务端列表RpcClient::config($address_array);$uid = 567;$user_client = RpcClient::instance('User'); //这个User是服务端的类,在JsonRpc/Services/User.php//调用User类中的方法var_dump($user_client->getEmail(123));
3.回到服务端,新建新闻服务News.php
可以看到,默认有Blog类和User类(前面我们已经在客户端调用过)。
在服务端新建了一个News
服务后,不需要重启服务(不需要再次执行 php allserver.php start)。
来到客户端测试:
<?phprequire_once 'RpcClient.php'; // 服务端列表$address_array = array( 'tcp://10.211.55.13:2015', //我们只有一个服务);// 配置服务端列表RpcClient::config($address_array);//客户端调用新闻服务$client = RpcClient::instance('News');var_dump($client->getTodayNews());
- workerman-json-rpc:使用workerman快速进行RPC开发的套路
- workerman开发
- Workerman
- Workerman
- workerman
- Workerman
- JSON-RPC组件的使用
- 使用workerman简单的多人聊天室
- WorkerMan和ThingPHP的结合使用
- workerman定时任务使用
- 基于workerman的聊天室
- WorkerMan的安装学习
- php使用workerman自定义协议
- workerman中使用aes加密
- 【workerman】CentOS下的workerman对应的环境配置
- workerman-chat的安装方法
- workerman和swoole的区别
- 基于workerman 的 消息推送
- 谈谈关于angularjs指令中complie函数和link函数的理解
- Linux yum源配置
- BeanUtils忽略空属性或字段
- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platfor
- pl/sql developer创建job
- workerman-json-rpc:使用workerman快速进行RPC开发的套路
- Unity开发详解之新建工程(1/6)
- YDB基本使用详解
- VC 消息积累 01
- Ubuntu报“xxx is not in the sudoers file.This incident will be reported” 错误解决方法
- php调试时echo,print_r(),var_dump()的区别
- Single Shot MultiBox Detector(MXNet)源码阅读笔记(2)
- 。
- IntelliJ IDEA 15 最新破解方法