From 9a3364423453d8f172eaab9253de033331bdc640 Mon Sep 17 00:00:00 2001 From: sfw Date: Fri, 6 Jul 2018 17:30:58 +0800 Subject: [PATCH] ch4-04-fix typos --- ch4-rpc/ch4-04-grpc.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ch4-rpc/ch4-04-grpc.md b/ch4-rpc/ch4-04-grpc.md index 19c98eb..ad8c450 100644 --- a/ch4-rpc/ch4-04-grpc.md +++ b/ch4-rpc/ch4-04-grpc.md @@ -95,7 +95,7 @@ GRPC和标准库的RPC框架还有一个区别,GRPC生成的接口并不支持 ## GRPC流 -RPC是远程函数调用,因此每次调用的函数参数和返回值不能太大,负责将严重影响每次调用的性能。因此传统的RPC方法调用对于上传和下载较大数据量场景并不适合。同时传统RPC模式也不适用于对于时间不确定的订阅和发布模式。为此,GRPC框架分别提供了服务器端和客户端的流特性。 +RPC是远程函数调用,因此每次调用的函数参数和返回值不能太大,否则将严重影响每次调用的性能。因此传统的RPC方法调用对于上传和下载较大数据量场景并不适合。同时传统RPC模式也不适用于对时间不确定的订阅和发布模式。为此,GRPC框架分别提供了服务器端和客户端的流特性。 服务端或客户端的单向流是双向流的特例,我们在HelloService增加一个支持双向流的Channel方法: @@ -109,7 +109,7 @@ service HelloService { 关键字stream指定启用流特性,参数部分是接收客户端参数的流,返回值是返回给客户端的流。 -重新生成代码可以可以看到接口中新增加的Channel方法的定义: +重新生成代码可以看到接口中新增加的Channel方法的定义: ```go type HelloServiceServer interface { @@ -165,7 +165,7 @@ func (p *HelloServiceImpl) Channel(stream HelloService_ChannelServer) error { } ``` -服务端在循环中接收客户端发来的数据,如果遇到io.EOF表示客户端流被关闭,如果函数退出表示服务端流关闭。然后生成返回的数据通过流发送给客户端。需要主要的是,发送和接收的操作并不需要一一对应,用户可以根据真实场景进行组织代码。 +服务端在循环中接收客户端发来的数据,如果遇到io.EOF表示客户端流被关闭,如果函数退出表示服务端流关闭。然后生成返回的数据通过流发送给客户端。需要注意的是,发送和接收的操作并不需要一一对应,用户可以根据真实场景进行组织代码。 客户端需要先调用Channel方法获取返回的流对象: @@ -176,7 +176,7 @@ if err != nil { } ``` -在客户端我们将发送和接收操作放到两个独立的Goroutine。首先是向服务端发生数据: +在客户端我们将发送和接收操作放到两个独立的Goroutine。首先是向服务端发送数据: ```go go func() { @@ -204,7 +204,7 @@ for { } ``` -这样就完成了完整的流接收和发生支持。 +这样就完成了完整的流接收和发送支持。