测试嵌套消息和import功能

This commit is contained in:
2023-01-19 16:02:36 +08:00
parent ad688a03dd
commit aed9362e36
7 changed files with 48 additions and 44 deletions
+9
View File
@@ -0,0 +1,9 @@
syntax = "proto3";
package Common;
option go_package = "tldemo/services/Common";
enum Gender {
Male=0;
Female=1;
}
+2 -1
View File
@@ -20,6 +20,7 @@ set CLIENT_OUTPUT_DIR=%CURRENT_DIR%\output\client
if not exist %CLIENT_OUTPUT_DIR% mkdir %CLIENT_OUTPUT_DIR% 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" 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% 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% 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% 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 "%PROTOC_EXE_PATH%" --go_out="%SERVER_OUTPUT_DIR%" --go-grpc_out=%SERVER_OUTPUT_DIR% user.proto
+1 -1
View File
@@ -1,7 +1,7 @@
syntax = "proto3"; syntax = "proto3";
package Greeter; package Greeter;
option go_package = "./Greeter"; option go_package = "tldemo/services/Greeter";
message HelloRequest { message HelloRequest {
string name = 1; string name = 1;
+8 -14
View File
@@ -1,23 +1,19 @@
syntax = "proto3"; syntax = "proto3";
package User; package User;
option go_package = "./User"; option go_package = "tldemo/services/User";
import "common.proto";
message RegisterRequest {
string name = 1;
Common.Gender gender = 2;
repeated Address address = 3;
message Address { message Address {
string address = 1; string address = 1;
string postal_code = 2; string postal_code = 2;
} }
enum GENDER_ENUM {
GE_MALE=0;
GE_FEMALE=1;
}
message RegisterRequest {
string name = 1;
GENDER_ENUM gender = 2;
repeated Address address = 3;
} }
message RegisterResponse { message RegisterResponse {
@@ -31,12 +27,10 @@ message QueryRequest {
message QueryResponse { message QueryResponse {
string name = 1; string name = 1;
GENDER_ENUM gender = 2; Common.Gender gender = 2;
repeated Address address = 3;
} }
service UserService { service UserService {
rpc Register (RegisterRequest) returns (RegisterResponse); rpc Register (RegisterRequest) returns (RegisterResponse);
rpc Query(QueryRequest) returns(QueryResponse); rpc Query(QueryRequest) returns(QueryResponse);
} }
+13 -13
View File
@@ -7,36 +7,36 @@ import (
"time" "time"
"google.golang.org/grpc" "google.golang.org/grpc"
pb "tldemo/services/Greeter" Greeter "tldemo/services/Greeter"
) )
type GreeterServer struct { 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() currentTime := time.Now()
replyMessage := fmt.Sprintf("Hello %s, time is %s", in.Name, currentTime.Format("15:04:05")) replyMessage := fmt.Sprintf("Hello %s, time is %s", in.Name, currentTime.Format("15:04:05"))
log.Printf("[Hello User] %s", in.Name) log.Printf("[Hello User] %s", in.Name)
result := &pb.HelloResponse{ReplyMessage: replyMessage} result := &Greeter.HelloResponse{ReplyMessage: replyMessage}
return result, nil return result, nil
} }
type TimeServer struct { 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()) currentTime := uint64(time.Now().UTC().UnixMilli())
log.Printf("[Now]send time: %d", currentTime) log.Printf("[Now]send time: %d", currentTime)
result := &pb.NowResponse{Now: currentTime} result := &Greeter.NowResponse{Now: currentTime}
return result, nil 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() ctx := stream.Context()
response := &pb.NowResponse{} response := &Greeter.NowResponse{}
sendNow := func(counts int32) { sendNow := func(counts int32) {
response.Now = uint64(time.Now().UTC().UnixMilli()) response.Now = uint64(time.Now().UTC().UnixMilli())
@@ -72,9 +72,9 @@ func (s *TimeServer) Ticktok(in *pb.TicktokRequest, stream pb.TimeService_Tickto
return nil return nil
} }
func (s *TimeServer) Watch(stream pb.TimeService_WatchServer) error { func (s *TimeServer) Watch(stream Greeter.TimeService_WatchServer) error {
ctx := stream.Context() ctx := stream.Context()
response := &pb.NowResponse{} response := &Greeter.NowResponse{}
sendNow := func() error { sendNow := func() error {
response.Now = uint64(time.Now().UTC().UnixMilli()) 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) { func RegisterGreeterServer(s *grpc.Server) {
greeterServer := &GreeterServer{} greeterServer := &GreeterServer{}
pb.RegisterGreeterServiceServer(s, greeterServer) Greeter.RegisterGreeterServiceServer(s, greeterServer)
timeServer := &TimeServer{} timeServer := &TimeServer{}
pb.RegisterTimeServiceServer(s, timeServer) Greeter.RegisterTimeServiceServer(s, timeServer)
} }
+14 -14
View File
@@ -7,7 +7,8 @@ import (
"errors" "errors"
"google.golang.org/grpc" "google.golang.org/grpc"
pb "tldemo/services/User" User "tldemo/services/User"
Common "tldemo/services/Common"
) )
type UserAddress struct { type UserAddress struct {
@@ -18,16 +19,16 @@ type UserAddress struct {
type UserData struct { type UserData struct {
Id int Id int
Name string Name string
Gender pb.GENDER_ENUM Gender Common.Gender
Addresses [] *UserAddress Addresses [] *UserAddress
} }
type UserServer struct { type UserServer struct {
pb.UnimplementedUserServiceServer User.UnimplementedUserServiceServer
UserArray []*UserData 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 := &UserData{Id:len(s.UserArray), Name:in.Name, Gender:in.Gender}
userData.Addresses = make([]*UserAddress, 0) userData.Addresses = make([]*UserAddress, 0)
for i:=0; i<len(in.Address); i++ { for i:=0; i<len(in.Address); i++ {
@@ -38,11 +39,11 @@ func (s *UserServer) Register(ctx context.Context, in *pb.RegisterRequest) (*pb.
replyMessage := fmt.Sprintf("Hello %s, Your Id is %v", userData.Name, userData.Id) replyMessage := fmt.Sprintf("Hello %s, Your Id is %v", userData.Name, userData.Id)
log.Printf("[Register User] %s", replyMessage) log.Printf("[Register User] %s", replyMessage)
result := &pb.RegisterResponse{Id: uint64(userData.Id), Msg: replyMessage} result := &User.RegisterResponse{Id: uint64(userData.Id), Msg: replyMessage}
return result, nil return result, nil
} }
func (s *UserServer) Query(ctx context.Context, in *pb.QueryRequest) (*pb.QueryResponse, error) { func (s *UserServer) Query(ctx context.Context, in *User.QueryRequest) (*User.QueryResponse, error) {
log.Printf("[Query User] %d", in.Id) log.Printf("[Query User] %d", in.Id)
if(in.Id<0 || int(in.Id)>=len(s.UserArray)) { if(in.Id<0 || int(in.Id)>=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)] var userData = s.UserArray[int(in.Id)]
address := make([]*pb.Address, 0) //address := make([]*User.RegisterRequest_Address, 0)
for i:=0; i<len(userData.Addresses); i++ { //for i:=0; i<len(userData.Addresses); i++ {
address = append(address, &pb.Address{ Address: userData.Addresses[i].Address, PostalCode: userData.Addresses[i].PostalCode}) // address = append(address, &User.RegisterRequest_Address{ Address: userData.Addresses[i].Address, PostalCode: userData.Addresses[i].PostalCode})
} //}
//address[0] = &pb.Address{ Address: "xxxx", PostalCode: "1234"} //address[0] = &User.Address{ Address: "xxxx", PostalCode: "1234"}
result := &pb.QueryResponse{ result := &User.QueryResponse{
Name: userData.Name, Name: userData.Name,
Gender: userData.Gender, Gender: userData.Gender,
Address : address,
} }
return result, nil return result, nil
} }
@@ -69,6 +69,6 @@ func RegisterUserServer(s *grpc.Server) {
userServer := &UserServer{} userServer := &UserServer{}
userServer.UserArray = make([]*UserData, 0) userServer.UserArray = make([]*UserData, 0)
pb.RegisterUserServiceServer(s, userServer) User.RegisterUserServiceServer(s, userServer)
} }