go-grpc 使用
1. 安装 protobuf
protoc 工具(放在go path bin目录/或者把它加入PATH路径)
2.protoc 没有内置Go版本生成,需要安装 protoc-go-gen
https://github.com/golang/protobuf/protoc-go-gen
3.编译文件
protoc --go_out=plugins=grpc:. *.proto
4.使用
服务端
svr := grpc.NewServer()
inf.RegisterUserDataServer(svr, &UserData{})
type UserData struct{}
func (d *UserData) GetUser(ctx context.Context, request *inf.UserReq) (response *inf.UserRsp, err error) {
response = &inf.UserRsp{
Name: strconv.Itoa(int(request.UserId)) + ":tip",
}
return response, err
}
客户端
conn, err := grpc.Dial(fmt.Sprintf("127.0.0.1:%s", port), grpc.WithInsecure())
cli := inf.NewUserDataClient(conn)
getUser(cli)
func getUser(cli inf.UserDataClient) {
iRand := rand.Intn(100)
req := inf.UserReq{
UserId: int32(iRand),
}
rsp, err := cli.GetUser(context.Background(), &req)
if err != nil {
fmt.Println(err)
return
}
log.Printf("response:%v", rsp)
}
详细代码见
Client
Server
4.grpc详细使用
gRPC 官方文档中文版_V1.0 https://doc.oschina.net/grpc?t=60133