client.go 2.04 KB
package main

import (
	"context"
	"fmt"
	"google.golang.org/grpc"
	_ "pro2d/conf"
	"pro2d/protos/pb"
	"pro2d/utils"
)

func Register(c pb.AccountClient, phone, password string)  error {
	r, err := c.RegisterHandler(context.Background(), &pb.Register{
		Phone:                "17683852936",
		Password:             "123456",
		Code:     0,
	})

	if err != nil {
		return err
	}
	if r.Code != 0 {
		return fmt.Errorf("%s", r.Msg)
	}
	utils.Sugar.Debug("register success")
	return nil
}

func Login(loginUri, token string)  {
	gameConn, err := grpc.Dial(loginUri, grpc.WithInsecure() )
	if err != nil {
		utils.Sugar.Errorf("game conn err: %v", err)
		return
	}
	defer gameConn.Close()

	client:= pb.NewGameClient(gameConn)
	var role *pb.Role
	loginRsp, err := client.LoginHandler(context.Background(), &pb.Token{
		Token: token,
	})

	if err != nil {
		utils.Sugar.Errorf("login error: %v", err)
		return
	}
	role = loginRsp.Role

	if loginRsp.Rsp.Code != 0 {
		utils.Sugar.Debugf("login rsp: %v", loginRsp.Rsp.Msg)
		createRole, err := client.CreateRoleHandler(context.Background(), &pb.Token{Token: token})
		if err != nil {
			utils.Sugar.Errorf("create role err: %v", err)
			return
		}
		utils.Sugar.Debug("create role rsp: ", createRole.Rsp.Code, createRole.Rsp.Msg)
		role = createRole.Role
	}

	utils.Sugar.Debugf("login successful role: %v", role)
}

func main() {
	conn, err := grpc.Dial("localhost:8848", grpc.WithInsecure())
	if err != nil {
		utils.Sugar.Errorf("conn err: %v", err)
		return
	}
	defer conn.Close()
	c := pb.NewAccountClient(conn)
	//err = Register(c,"17683852936", "123456")
	//if err != nil {
	//	utils.Sugar.Errorf("register err: %v", err)
	//	return
	//}
	rsp, err := c.CreateTokenHandler(context.Background(), &pb.AccountInfo{
		Phone:                "17683852936",
		Password:             "123456",
	})

	if err != nil {
		utils.Sugar.Errorf("createtoken err: %v", err)
		return
	}

	if rsp.Rsp.Code != 0 {
		utils.Sugar.Errorf("createtoken err: %v", rsp.Rsp.Msg)
		return
	}

	if len(rsp.GameService) >0 {
		Login(rsp.GameService[0].Address, rsp.Token)
	}
}