package client import ( "context" "google.golang.org/grpc" roomv1 "hyapp/api/proto/room/v1" ) // RoomClient 抽象 gateway 对 room-service 的 gRPC 编排依赖。 type RoomClient interface { CreateRoom(ctx context.Context, req *roomv1.CreateRoomRequest) (*roomv1.CreateRoomResponse, error) JoinRoom(ctx context.Context, req *roomv1.JoinRoomRequest) (*roomv1.JoinRoomResponse, error) LeaveRoom(ctx context.Context, req *roomv1.LeaveRoomRequest) (*roomv1.LeaveRoomResponse, error) MicUp(ctx context.Context, req *roomv1.MicUpRequest) (*roomv1.MicUpResponse, error) MicDown(ctx context.Context, req *roomv1.MicDownRequest) (*roomv1.MicDownResponse, error) ChangeMicSeat(ctx context.Context, req *roomv1.ChangeMicSeatRequest) (*roomv1.ChangeMicSeatResponse, error) MuteUser(ctx context.Context, req *roomv1.MuteUserRequest) (*roomv1.MuteUserResponse, error) KickUser(ctx context.Context, req *roomv1.KickUserRequest) (*roomv1.KickUserResponse, error) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*roomv1.SendGiftResponse, error) } type grpcRoomClient struct { client roomv1.RoomCommandServiceClient } // NewGRPCRoomClient 用 gRPC 连接构造 room-service client。 func NewGRPCRoomClient(conn *grpc.ClientConn) RoomClient { return &grpcRoomClient{ client: roomv1.NewRoomCommandServiceClient(conn), } } func (c *grpcRoomClient) CreateRoom(ctx context.Context, req *roomv1.CreateRoomRequest) (*roomv1.CreateRoomResponse, error) { return c.client.CreateRoom(ctx, req) } func (c *grpcRoomClient) JoinRoom(ctx context.Context, req *roomv1.JoinRoomRequest) (*roomv1.JoinRoomResponse, error) { return c.client.JoinRoom(ctx, req) } func (c *grpcRoomClient) LeaveRoom(ctx context.Context, req *roomv1.LeaveRoomRequest) (*roomv1.LeaveRoomResponse, error) { return c.client.LeaveRoom(ctx, req) } func (c *grpcRoomClient) MicUp(ctx context.Context, req *roomv1.MicUpRequest) (*roomv1.MicUpResponse, error) { return c.client.MicUp(ctx, req) } func (c *grpcRoomClient) MicDown(ctx context.Context, req *roomv1.MicDownRequest) (*roomv1.MicDownResponse, error) { return c.client.MicDown(ctx, req) } func (c *grpcRoomClient) ChangeMicSeat(ctx context.Context, req *roomv1.ChangeMicSeatRequest) (*roomv1.ChangeMicSeatResponse, error) { return c.client.ChangeMicSeat(ctx, req) } func (c *grpcRoomClient) MuteUser(ctx context.Context, req *roomv1.MuteUserRequest) (*roomv1.MuteUserResponse, error) { return c.client.MuteUser(ctx, req) } func (c *grpcRoomClient) KickUser(ctx context.Context, req *roomv1.KickUserRequest) (*roomv1.KickUserResponse, error) { return c.client.KickUser(ctx, req) } func (c *grpcRoomClient) SendGift(ctx context.Context, req *roomv1.SendGiftRequest) (*roomv1.SendGiftResponse, error) { return c.client.SendGift(ctx, req) }