1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-27 23:12:20 +00:00

Merge pull request #185 from fuwensun/pr4-1-3b

ch4-01-fix typo
This commit is contained in:
chai2010 2018-07-07 08:04:35 +08:00 committed by GitHub
commit e8118d5f04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -237,7 +237,7 @@ func main() {
{"method":"HelloService.Hello","params":["hello"],"id":0}
```
这是一个json编码的数据其中method部分对应要调用的rpc服务和方法组合成的名字params部分的第一个元素为参数部分id是由调用端维护的一个唯一的调用编号。
这是一个json编码的数据其中method部分对应要调用的rpc服务和方法组合成的名字params部分的第一个元素为参数id是由调用端维护的一个唯一的调用编号。
请求的json数据对象在内部对应两个结构体客户端是clientRequest服务端是serverRequest。clientRequest和serverRequest结构体的内容基本是一致的
@ -255,7 +255,7 @@ type serverRequest struct {
}
```
在获取到RPC调用对应的json数据后我们可以通过直接向设了RPC服务的TCP服务器发送json数据模拟RPC方法调用
在获取到RPC调用对应的json数据后我们可以通过直接向设了RPC服务的TCP服务器发送json数据模拟RPC方法调用
```
$ echo -e '{"method":"HelloService.Hello","params":["hello"],"id":1}' | nc localhost 1234
@ -285,7 +285,7 @@ type serverResponse struct {
}
```
因此无论采用何语言只要遵循同样的json结构以同样的流程就可以和Go语言编写的RPC服务进行通信。这样我们就实现了跨语言的RPC。
因此无论采用何语言只要遵循同样的json结构以同样的流程就可以和Go语言编写的RPC服务进行通信。这样我们就实现了跨语言的RPC。
## Http上的RPC