/* * @description: rpc services 实例 * @Author: CP * @Date: 2020-11-12 22:53:14 * @FilePath: \construction_management\services\rpc_service.go */ package services import ( "context" "log" "time" safe "go.mod/proto" "google.golang.org/grpc" ) type RpcService interface { Test(RpcConnect *grpc.ClientConn) } //返回service操作类 type rpcService struct { // address string // defaultName string //Ctx iris.Context //rpcClient *grpc.ClientConn // 定义proto 接口文件- /proto/rpc.proto // pb.UnimplementedGreeterServer } //创建项目用户service func NewRpcService() RpcService { return &rpcService{ // address: "192.168.1.26:5001", //rpcClient: GetGrpcClient(ctx), } } // func GetGrpcClient(ctx iris.Context) *grpc.ClientConn { // // // 启动grpc客户端,连接grpc服务端 // // conn, err := grpc.Dial(address, grpc.WithInsecure()) // // if err != nil { // // log.Fatalf("did not connect: %v", err) // // } // // // defer conn.Close() // // return conn // } // 具体的业务逻辑 func (s *rpcService) Test(RpcConnect *grpc.ClientConn) { // 1.结束后关闭 //defer s.rpcClient.Close() rpcClient := safe.NewGreeterClient(RpcConnect) // c := pb.NewGreeterClient(conn) ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() r, err := rpcClient.SayHello(ctx, &safe.HelloRequest{Name: "caipin"}) if err != nil { log.Fatalf("could not greet: %v", err) } log.Printf("Greeting: %s", r.GetMessage()) }