上一篇我们写了普通的grpc的调用过程,这篇接上篇写一下客户端流式 grpc
目录结构
protofile 目录是proto文件与生成go代码的命令proto.bat
product.proto
syntax = "proto3"; //protobuf的版本
option go_package="../service";
package service; //指定生成出来的 package
//定义request model
message ProductRequest{
int32 prod_id = 1;
}
//定义response model
message ProductResponse{
int32 prod_socket = 1;
}
service ProdService{
//客户端流式传入
rpc GetProdSocketSteamClient(stream ProductRequest)returns(ProductResponse);
}
proto.bat 命令
protoc --go_out=./ --go-grpc_out=./ .\product.proto
server目录写的是服务端接受客户端流式的业务逻辑
package main
import (
"grpc-client-stream/service"
"io"
"log"
"net"
"google.golang.org/grpc"
)
type ProductService struct {
*service