diff --git a/Client/Content/TurboLinkTest/UI/WBP_UserService_BP.uasset b/Client/Content/TurboLinkTest/UI/WBP_UserService_BP.uasset index 7d73fea..f73ca4b 100644 Binary files a/Client/Content/TurboLinkTest/UI/WBP_UserService_BP.uasset and b/Client/Content/TurboLinkTest/UI/WBP_UserService_BP.uasset differ diff --git a/Common/proto/common.proto b/Common/proto/common.proto new file mode 100644 index 0000000..528a3ba --- /dev/null +++ b/Common/proto/common.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +package Common; +option go_package = "tldemo/services/Common"; + +enum Gender { + Male=0; + Female=1; +} diff --git a/Common/proto/generate-code.cmd b/Common/proto/generate-code.cmd index 0fceb56..69d2aa0 100644 --- a/Common/proto/generate-code.cmd +++ b/Common/proto/generate-code.cmd @@ -20,6 +20,7 @@ set CLIENT_OUTPUT_DIR=%CURRENT_DIR%\output\client if not exist %CLIENT_OUTPUT_DIR% mkdir %CLIENT_OUTPUT_DIR% call "%TL_UE_PLUGIN_PATH%\Tools\generate_code.cmd" hello.proto Greeter %CLIENT_OUTPUT_DIR% +call "%TL_UE_PLUGIN_PATH%\Tools\generate_code.cmd" common.proto Common %CLIENT_OUTPUT_DIR% call "%TL_UE_PLUGIN_PATH%\Tools\generate_code.cmd" user.proto User %CLIENT_OUTPUT_DIR% ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -28,5 +29,5 @@ set SERVER_OUTPUT_DIR=%CURRENT_DIR%\output\server if not exist %SERVER_OUTPUT_DIR% mkdir %SERVER_OUTPUT_DIR% "%PROTOC_EXE_PATH%" --go_out="%SERVER_OUTPUT_DIR%" --go-grpc_out=%SERVER_OUTPUT_DIR% hello.proto +"%PROTOC_EXE_PATH%" --go_out="%SERVER_OUTPUT_DIR%" --go-grpc_out=%SERVER_OUTPUT_DIR% common.proto "%PROTOC_EXE_PATH%" --go_out="%SERVER_OUTPUT_DIR%" --go-grpc_out=%SERVER_OUTPUT_DIR% user.proto - diff --git a/Common/proto/hello.proto b/Common/proto/hello.proto index 31ea8de..d5c1776 100644 --- a/Common/proto/hello.proto +++ b/Common/proto/hello.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package Greeter; -option go_package = "./Greeter"; +option go_package = "tldemo/services/Greeter"; message HelloRequest { string name = 1; diff --git a/Common/proto/user.proto b/Common/proto/user.proto index 318e43e..cf8a7c3 100644 --- a/Common/proto/user.proto +++ b/Common/proto/user.proto @@ -1,23 +1,19 @@ syntax = "proto3"; package User; -option go_package = "./User"; +option go_package = "tldemo/services/User"; - -message Address { - string address = 1; - string postal_code = 2; -} - -enum GENDER_ENUM { - GE_MALE=0; - GE_FEMALE=1; -} +import "common.proto"; message RegisterRequest { string name = 1; - GENDER_ENUM gender = 2; + Common.Gender gender = 2; repeated Address address = 3; + + message Address { + string address = 1; + string postal_code = 2; + } } message RegisterResponse { @@ -31,12 +27,10 @@ message QueryRequest { message QueryResponse { string name = 1; - GENDER_ENUM gender = 2; - repeated Address address = 3; + Common.Gender gender = 2; } service UserService { rpc Register (RegisterRequest) returns (RegisterResponse); rpc Query(QueryRequest) returns(QueryResponse); } - diff --git a/Server/services/greeter_server.go b/Server/services/greeter_server.go index 435c088..3b2d356 100644 --- a/Server/services/greeter_server.go +++ b/Server/services/greeter_server.go @@ -7,36 +7,36 @@ import ( "time" "google.golang.org/grpc" - pb "tldemo/services/Greeter" + Greeter "tldemo/services/Greeter" ) type GreeterServer struct { - pb.UnimplementedGreeterServiceServer + Greeter.UnimplementedGreeterServiceServer } -func (s *GreeterServer) Hello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloResponse, error) { +func (s *GreeterServer) Hello(ctx context.Context, in *Greeter.HelloRequest) (*Greeter.HelloResponse, error) { currentTime := time.Now() replyMessage := fmt.Sprintf("Hello %s, time is %s", in.Name, currentTime.Format("15:04:05")) log.Printf("[Hello User] %s", in.Name) - result := &pb.HelloResponse{ReplyMessage: replyMessage} + result := &Greeter.HelloResponse{ReplyMessage: replyMessage} return result, nil } type TimeServer struct { - pb.UnimplementedTimeServiceServer + Greeter.UnimplementedTimeServiceServer } -func (s *TimeServer) Now(ctx context.Context, in *pb.Nothing) (*pb.NowResponse, error) { +func (s *TimeServer) Now(ctx context.Context, in *Greeter.Nothing) (*Greeter.NowResponse, error) { currentTime := uint64(time.Now().UTC().UnixMilli()) log.Printf("[Now]send time: %d", currentTime) - result := &pb.NowResponse{Now: currentTime} + result := &Greeter.NowResponse{Now: currentTime} return result, nil } -func (s *TimeServer) Ticktok(in *pb.TicktokRequest, stream pb.TimeService_TicktokServer) error { +func (s *TimeServer) Ticktok(in *Greeter.TicktokRequest, stream Greeter.TimeService_TicktokServer) error { ctx := stream.Context() - response := &pb.NowResponse{} + response := &Greeter.NowResponse{} sendNow := func(counts int32) { response.Now = uint64(time.Now().UTC().UnixMilli()) @@ -72,9 +72,9 @@ func (s *TimeServer) Ticktok(in *pb.TicktokRequest, stream pb.TimeService_Tickto return nil } -func (s *TimeServer) Watch(stream pb.TimeService_WatchServer) error { +func (s *TimeServer) Watch(stream Greeter.TimeService_WatchServer) error { ctx := stream.Context() - response := &pb.NowResponse{} + response := &Greeter.NowResponse{} sendNow := func() error { response.Now = uint64(time.Now().UTC().UnixMilli()) @@ -100,10 +100,10 @@ func (s *TimeServer) Watch(stream pb.TimeService_WatchServer) error { func RegisterGreeterServer(s *grpc.Server) { greeterServer := &GreeterServer{} - pb.RegisterGreeterServiceServer(s, greeterServer) + Greeter.RegisterGreeterServiceServer(s, greeterServer) timeServer := &TimeServer{} - pb.RegisterTimeServiceServer(s, timeServer) + Greeter.RegisterTimeServiceServer(s, timeServer) } diff --git a/Server/services/user_server.go b/Server/services/user_server.go index f4a4e67..e0be4da 100644 --- a/Server/services/user_server.go +++ b/Server/services/user_server.go @@ -7,7 +7,8 @@ import ( "errors" "google.golang.org/grpc" - pb "tldemo/services/User" + User "tldemo/services/User" + Common "tldemo/services/Common" ) type UserAddress struct { @@ -18,16 +19,16 @@ type UserAddress struct { type UserData struct { Id int Name string - Gender pb.GENDER_ENUM + Gender Common.Gender Addresses [] *UserAddress } type UserServer struct { - pb.UnimplementedUserServiceServer + User.UnimplementedUserServiceServer UserArray []*UserData } -func (s *UserServer) Register(ctx context.Context, in *pb.RegisterRequest) (*pb.RegisterResponse, error) { +func (s *UserServer) Register(ctx context.Context, in *User.RegisterRequest) (*User.RegisterResponse, error) { userData := &UserData{Id:len(s.UserArray), Name:in.Name, Gender:in.Gender} userData.Addresses = make([]*UserAddress, 0) for i:=0; i=len(s.UserArray)) { @@ -51,16 +52,15 @@ func (s *UserServer) Query(ctx context.Context, in *pb.QueryRequest) (*pb.QueryR var userData = s.UserArray[int(in.Id)] - address := make([]*pb.Address, 0) - for i:=0; i