gRPC----gRPC(springboot)传输流式数据和集合对象 - Go语言中文社区

gRPC----gRPC(springboot)传输流式数据和集合对象


概述

整个demo是在上一篇springboot+GRPC传输简单数据的基础上添加的内容,如有什么不明白的地方可参考上一篇文档。

项目结构和实现步骤

  • 整个demo依然是分为了三个部分:接口定义部分服务器端客户端
  • 整个demo实现了传输流式数据和传输集合对象的结合使用

整个demo的实现步骤:

  1. 依然是在demo-proto模块中使用protobuf定义接口proto文件,使用build方法生成对应程序代码
  2. 在demo-server模块中重写传输方法
  3. 在demo-client中发送请求,获取返回数据
  4. 在浏览器中输出返回数据结果,并在浏览器中打印出来

demo实现

接口文件部分

在demo-proto接口文件中新增流式数据消息格式,在流式返回数据中添加一个集合对象,实现返回数据中可有集合对象。以及添加传输流式数据的StreamServerHello方法
代码如下所示:

//流式响应消息
message StreamResponse{
    int32 code=1;
    string message=2;
    int32 count=3;
    repeated CommonResponse record=4;
}

service Simple{
    rpc Hello(CommonRequest) returns(CommonResponse){}

    rpc StreamServerHello(CommonRequest) returns(stream StreamResponse){}
}

把定义的传输消息的内容、方法添加完成后,使用build方法生成对应的程序代码,为服务端调用做好准备。

服务端

  • demo所需要的依赖和端口设置没有什么改变,在这里不再加以赘述
  • 在demo-server服务端引入demo-proto模块后,继承SimpleGrpc.SimpleImplBase类后,重写streamServerHello方法

代码如下所示:
服务端方法重写

客户端

  • 客户端demo-client也没有添加什么新的依赖端口也没有进行更改,在接收的返回数据中没有使用JSON进行处理,所以配置文件就不再加以赘述
  1. 在demo-client客户端添加发送请求的方法,并且解析服务端返回的流式数据

方法具体代码如下:
客户端发送请求方法
:在这里没有把返回的数据使用JSON进行处理,只是简单的把返回的数据转成字符串作为返回对象。

  1. 在控制器中使用RequestMapping注解添加访问发送请求的方法,并且获取浏览器URL中输入的参数内容

代码如下:
在这里插入图片描述

运行结果

分别启动客户端和服务端
服务端启动结果如图所示:
在这里插入图片描述
客户端启动结果如图所示:
在这里插入图片描述
demo最后运行结果如下所示:
demo运行结果图
本文整个demo的实现在上一篇文档的基础上完成的,如果有什么不明白的地方可参考上一篇文章
gRPC----gRPC(springboot)传输简单数据

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/AImprobityAngel/article/details/94135375
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 04:07:27
  • 阅读 ( 2292 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢