service接口和dto放到一个独立的包中,方便客户端和服务端使用
客户端拿到service接口后,典型处理步骤如下
- 通过代理创建一个service对象供客户端使用
- 客户端在调用这个service的方法后,rpc客户端将把这个方法调用转成http调用,发送到服务端
- 为了能够定位到服务端上对应的service和方法,调用参数一般会带上service的名称和方法名,以及参数列表,比如:
{
"method":"my\class\namespace\MyClass.test1",
"params":[
"param1",
"param2",
"param3"
]
}
这个my\class\namespace\MyClass
就是service类接口,test1
是方法
注意:客户端只有service接口,没有这个接口的实现,这个接口的实现在服务端,需要通过http请求到服务端获取这个service的实现返回的结果
服务端需要解析这个客户端发来的service接口和方法
- 通过service接口到容器中拿到这个service的实例(服务端是有这个service的实例了)
- 调用这个service实例对象的方法,并将参数传递进去,最后将这个方法返回的结果返回给客户端