建立proto
syntax = "proto3"; option go_package = ".;say"; package say; service SayService{ rpc SayHello(sayRequest)returns(sayResponse){} } message sayRequest{ string name = 1; } message sayResponse{ string ret = 1; }
调用
protoc --go_out=plugins=grpc:. user.proto
server
package main import ( "context" "fmt" say "go_redis/grpc_pg" "google.golang.org/grpc" "net" ) type User struct { } func (u *User) SayHello(ctx context.Context, in *say.SayRequest) (*say.SayResponse, error) { resp := say.SayResponse{Ret:"hello "+in.Name} return &resp,nil } func main() { server := grpc.NewServer() say.RegisterSayServiceServer(server,&User{}) listen, err := net.Listen("tcp", "127.0.0.1:8080") fmt.Println("开始监听8080") if err != nil { fmt.Println("network error") } server.Serve(listen) }
client
package main import ( "context" "fmt" say "go_redis/grpc_pg" "google.golang.org/grpc" ) func main() { conn,err:=grpc.Dial("127.0.0.1:8080",grpc.WithInsecure()) if err !=nil{ fmt.Println(err) } client:=say.NewSayServiceClient(conn) resp,err:=client.SayHello(context.Background(),&say.SayRequest{Name: "taipi"}) if err !=nil{ fmt.Println(err) } fmt.Println(resp.Ret) }
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/p/16992432.html