1. 修改 laptop_service.proto 添加 ReteLaptop 相关内容,运行 make clean 、make gen 进行 代码生成
2. rating_store.go 中编写和评分相关的内容
3. 在 laptop_server.go 中实现 添加 RatingStore 并修初始化函数(修改之前单元测试中为 ratingStore添加nil值)实现服务端 RateLaptop 内容
4. 在sample包generator中增加一个生成rating的功能
5. 在 client/main.go 中实现 rateLaptop
6. 编写一个单元测试
运行一下单元测试
运行一下 server 和 client 进行测试
可以看到,client 发送完3条create laptop后,server 返回了评分的提示,此时client 再次发送y后, server 接收到后会进行评分,并进行返回。也就是说,client和server在一次连接中都发送了多次消息。
1. 拷⻉ gRPC go bidirectional-straming 中的 laptop_service.proto 运行 mvn clean compile 生成最新的代码
2. 新建一个 Rating 实体类
3. 新建一个RatingStore接口
4. 新建一个 InMemoryRatingStore 实现 RatingStore
5.编写一个单元测试进行测试
单元测试通过,结果符合预期
6. 在LaptopService中实现 RatingStore 相关内容,并修改LaptopServer 中使用LaptopService 方法的地方。
7. 接下来实现客户端,在 Generator 中添加一个新随机生成分数的方法
8. 在客户端编写一个调用 rating 的方法
9. 运行server 和 client 进行测试
同上,可以看到,client 发送完3条create laptop后,server 返回了评分的提示,此时client 再次发送y 后,server 接收到后会进行评分,并进行返回。也就是说,client和server在一次连接中都发送了多次 消息。
最后,来到了我们的熟悉的跨语言测试环节
我们先使用 Java Server 和 go client 进行测试
测试结果符合预期。
我们再反顾来使用 go Server 和 Java client 进行测试
效果符合预期