go-grpc 使用

1. 安装 protobuf 
protoc 工具(放在go path bin目录/或者把它加入PATH路径)
 
2.protoc 没有内置Go版本生成,需要安装 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
 
 
posted @ 2018-12-12 14:03  贾巴福  阅读(361)  评论(0编辑  收藏  举报