建立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)

}

 

posted on 2022-12-19 16:10  topass123  阅读(9)  评论(0编辑  收藏  举报