swoft1.x RPC 创建服务端与客户端

RPC的作用就是远程调用,也就是接口。

需要准备的

  • 俩台虚拟机,主要用来测试不同ip的。也不是必须,只是便于理解。
  • 俩台虚拟机都要有一份swoft。

我们先使用swoft里的domo做讲解,然后再自己做一遍。

此时
虚拟机A的IP:192.168.0.135
虚拟机B的IP:192.168.0.134

虚拟机A (客户端)

首先,我们打开这三个文件

图中88行那改成你虚拟机B的ip和端口。

DemoInterface.php:定义接口
DemoService.php:实现定义的接口
这俩个让你打开是让你看的,无需做修改,你只需修改 .env 里的,改好重启服务。
DemoService.php里的类注释有一个@Service(),这个是配置服务端版本号的,@Service()不填默认为0。用法看下面的客户端。

至此,服务端建立。
啥是服务端?
就是提供服务的。调用这个服务的叫做客户端。

虚拟机B(服务端)
虚拟机只需启动就可以了

php bin/swoft rpc:start

浏览器访问(这个页面是一个普通的控制器)
修改客户端 .env HTTP_PORT=8081

http://192.168.0.135:8081/rpc/call

 

至此,客户端也成功调用到了。
你想知道是不是真的成功了?那很简单,你把服务端的swoft停掉再访问就知道啦。
下面打开的是上面访问的控制器

 

 

@Reference(name=“user”, version=“1.0.1”)
name:服务名称
version:服务版本号

好了,我们来做服务端和客户端吧!

服务端说明
需要定义一个接口,然后实现这个接口。

定义接口

创建swoft/app/Lib/TestInterface.php

创建 swoft/app/Services/TestService.php

 

1、从服务端拷贝一份TestInterface.php 到客户端swoft/app/Lib/TestInterface.php,也就是把文件拉进去
2、将三个User的拷贝一份,把User的都改成Test
和服务端不同的是客户端需要有连接池和熔断器。
连接池和熔断器的名称要一样。
连接池由两部分组成,“连接池”和“连接池配置”。

 

TestBreaker.php改@Breaker(“user”)为@Breaker(“test”),改类名
TestServicePool.php改@Pool(name=“user”)为@Pool(name=“test”),改类名
TestPoolConfig.php 改类名

3、创建测试控制器 swoft/app/Controllers/TestController.php

修改客户端 .env HTTP_PORT=8081
php bin/swoft start

访问

192.168.0.135:8081/test/test

 

swoole
如果发现下载不了或者地址失效,请联系客服QQ: 2323178881
找资料 » swoft1.x RPC 创建服务端与客户端

提供最优质的资源集合

立即查看 了解详情