使用Golang IDE 以及 go mod搭建简单gRPC服务
使用go mod方式搭建项目
这样创建的项目可以不在GOPATH下运行
输入代理:
当然,也可以用别的代理
先创建server.go在项目根目录,放main函数
在go.mod文件中加一行
下载gRPC依赖
官方安装命令:
是安装不了的,会报超时错误:
因为这个包已经迁移到github上了,正确的做法是使用git clone去下载:
有git的同学 可以直接
git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net
git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text
git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto
下载protoc:
https://github.com/golang/protobuf
下载后将bin文件夹配置到环境变量中。
怎么配置环境变量就不说了,不知道的同学肯定是跳着学了。
输入protoc --version 出现版本号说明安装成功。
创建gRPC服务端
创建一个文件夹pbfiles用于存放proto文件
创建一个proto文件:Hi.proto
创建services文件夹在项目根目录,文件夹名就是proto文件中定义的包名。
打开终端,可以在Golang IDE 左下角选择Terminal也可以在项目文件夹中cmd进入。
先cd pbfiles 进入pbfiles文件夹
输入
新建一个HiService.go文件,其中声明一个结构体HiService
结构体实现Hi.pb.go中的接口
传入一个上下文context 和Hi.pb.go中定义的请求体 ,可以从请求体中取得客户端请求时放入的内容
返回的也是Hi.pb.go中定义的返回体,返回体中的返回值就是客户端请求时返回的内容。
在server.go的main方法中写上
启动服务端。
创建客户端
也使用go mod方式创建项目
将服务端的services包复制过来。
创建一个main.go
接下来就可以启动客户端,得到服务端的返回值