package main import ( "log" "time" "gitea.1216.top/lxy/zhub-go-client" ) func main() { // 方式1: 使用项目配置文件初始化 err := zhub.InitWithProjectConfig("../../app.yml") if err != nil { log.Fatal("Failed to initialize zhub:", err) } // 方式2: 自动发现配置文件 // err := zhub.InitFromCurrentDir() // if err != nil { // log.Fatal("Failed to initialize zhub:", err) // } // 方式3: 使用环境变量 // err := zhub.InitFromEnv() // if err != nil { // log.Fatal("Failed to initialize zhub:", err) // } log.Println("ZHub client initialized successfully") // 发布消息 err = zhub.Publish("test-topic", "Hello World!") if err != nil { log.Printf("Failed to publish: %v", err) } // 订阅消息 zhub.Subscribe("test-topic", func(message string) { log.Printf("Received message: %s", message) }) // RPC 调用 zhub.CallRpc("rpc-test", map[string]interface{}{ "action": "hello", "data": "test data", }, func(result zhub.RpcResult) { log.Printf("RPC Result: %+v", result) }) // RPC 服务端 zhub.RpcSubscribe("rpc-test", func(rpc zhub.Rpc) zhub.RpcResult { log.Printf("RPC Request: %+v", rpc) return rpc.Render(map[string]interface{}{ "status": "success", "data": "response data", }) }) // 分布式锁 lock := zhub.AcquireLock("test-lock", 30) log.Printf("Lock acquired: %+v", lock) // 模拟业务处理 time.Sleep(time.Second * 2) zhub.ReleaseLock(lock) log.Println("Lock released") // 保持程序运行 time.Sleep(time.Hour) }