topfans/backend/services/userService/test/dubbo_client.go
2026-04-07 22:29:48 +08:00

89 lines
2.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"context"
"fmt"
"log"
"time"
"dubbo.apache.org/dubbo-go/v3/client"
_ "dubbo.apache.org/dubbo-go/v3/imports"
pb "github.com/topfans/backend/pkg/proto/user"
)
func main() {
// 创建 Dubbo 客户端(直连模式)
// 注意URL 格式为 tri://host:port不需要包含接口名称
cli, err := client.NewClient(
client.WithClientURL("tri://127.0.0.1:20000"),
)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// 创建 UserSocialService 客户端
// NewUserSocialService 会自动处理接口名称和连接
svc, err := pb.NewUserSocialService(cli)
if err != nil {
log.Fatalf("Failed to create UserSocialService: %v", err)
}
// 等待一下,确保连接建立
time.Sleep(100 * time.Millisecond)
// 创建带超时的 context
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
// 测试注册功能
fmt.Println("=== 测试用户注册 ===")
registerReq := &pb.RegisterRequest{
Mobile: "13800000001",
Password: "password123",
StarId: 1,
Nickname: "测试用户",
}
registerResp, err := svc.Register(ctx, registerReq)
if err != nil {
log.Fatalf("注册失败: %v", err)
}
if registerResp.Base.Code != 0 {
log.Fatalf("注册失败,错误码: %d, 错误信息: %s", registerResp.Base.Code, registerResp.Base.Message)
}
fmt.Printf("✅ 注册成功!\n")
fmt.Printf("Token: %s\n", registerResp.AccessToken)
fmt.Printf("用户ID: %d\n", registerResp.User.Id)
fmt.Printf("用户手机号: %s\n", registerResp.User.Mobile)
if registerResp.FanProfile != nil {
fmt.Printf("粉丝档案昵称: %s\n", registerResp.FanProfile.Nickname)
fmt.Printf("粉丝档案ID: %d\n", registerResp.FanProfile.Id)
}
// 测试登录功能
fmt.Println("\n=== 测试用户登录 ===")
loginReq := &pb.LoginRequest{
Mobile: "13800000001",
Password: "password123",
}
loginResp, err := svc.Login(ctx, loginReq)
if err != nil {
log.Fatalf("登录失败: %v", err)
}
if loginResp.Base.Code != 0 {
log.Fatalf("登录失败,错误码: %d, 错误信息: %s", loginResp.Base.Code, loginResp.Base.Message)
}
fmt.Printf("✅ 登录成功!\n")
fmt.Printf("Token: %s\n", loginResp.AccessToken)
fmt.Printf("用户ID: %d\n", loginResp.User.Id)
fmt.Printf("当前粉丝身份数: %d\n", len(loginResp.FanProfiles))
fmt.Println("\n✅ 所有测试通过!")
}