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远程调用框架。

这里写图片描述
下载解压之后目录结构如下图,我们把JsonRpcStatistics 这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());

这里写图片描述

0 0
原创粉丝点击