【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
服务端 main.go
import "google.golang.org/grpc"
func RunGrpc() {
list, err := net.Listen("tcp", ":9001")
logs.Info("grpc:9001")
if err != nil {
logs.Info("grpc err=%s", err)
}
s := grpc.NewServer()
pb.RegisterWaiterServer(s, &helloServer{})
reflection.Register(s)
if err := s.Serve(list); err != nil {
logs.Info("failed to serve: %v", err)
}
}
func main(){
go RunGrpc()
beego.Run()
}
客户端 controller.go
import "google.golang.org/grpc"
func (c *UserController) Bind() {
var ADDRESS = "localhost:9001"
//通过grpc 库 建立一个连接
conn, err := grpc.Dial(ADDRESS, grpc.WithInsecure())
if err != nil {
return
}
defer conn.Close()
//通过刚刚的连接 生成一个client对象。
cc := pb.NewWaiterClient(conn)
//直接通过 client对象 调用 服务端的函数
r, err := cc.DoMD5(context.Background(), &pb.Req{JsonStr: "namas"})
if err != nil {
log.Fatal("could not greet: %v", err)
}
log.Printf("Greeting: %s", r.BackJson)
return
}