上一篇我们写了服务端端流式的grpc的调用过程,这篇接上篇写一下双向流式 grpc
目录
protofile 目录是proto文件与生成go代码的命令proto.bat
product.proto
syntax = "proto3";
option go_package = "../service";
package service;
message ProductRequest{
int32 prod_id = 1;
}
message ProductResponse{
int32 prod_socket = 1;
}
//定义服务
service ProdService{
//双向流
rpc GetProdSocket(stream ProductRequest)returns(stream ProductResponse);
}
proto.bat 命令
protoc --go_out=./ --go-grpc_out=./ .\product.proto
业务逻辑
server目录写的是服务端流式的业务逻辑
package main
import (
"google.golang.org/grpc"
"grpc-stream/service"
"io"
"log"
"net"
)
type ProductService struct {
*service.UnimplementedProdServiceServer
}
var productService = ProductService{
}
func (p ProductService) GetProdSocket(stream service.ProdService_GetProdSocketServer)