/*
 * @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())
}
