# AnoxSDK **Repository Path**: empiror/anox-sdk ## Basic Information - **Project Name**: AnoxSDK - **Description**: 个人用 go get 仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-22 - **Last Updated**: 2026-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Anox SDK anox-center 实例接入客户端。业务实例通过本 SDK 连接中心,完成注册、心跳、配置拉取与日志上报。 ## 安装 ```bash go get gitee.com/empiror/anox-sdk@latest ``` 国内建议: ```bash go env -w GOPROXY=https://goproxy.cn,direct ``` ## 快速开始(推荐) 启动时传入中心地址: ```bash ANOX_ADDR=10.241.190.180:8848 ./your-app ``` 业务代码只需: ```go package main import ( "log" "github.com/gin-gonic/gin" anoxsdk "gitee.com/empiror/anox-sdk" ) func main() { r := gin.New() r.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{"ok": true}) }) addr := ":9001" if err := anoxsdk.Init(r, addr); err != nil { log.Fatal(err) } defer anoxsdk.Stop() // Init 已自动注册 Panic 上报中间件,业务端口从 addr 解析 _ = r.Run(addr) } ``` `Init` 会: 1. 从环境变量 `ANOX_ADDR` 读取中心地址(自动拼成 `ws://host:port/ws`) 2. 从 `listenAddr`(如 `:9001`)解析业务端口并注册到中心 3. 使用主机名作为实例ID(Docker 下一般为容器 hostname;可用 `ANOX_INSTANCE_ID` 覆盖) 4. 为 gin 注册 Panic 自动上报中间件 5. 启动连接 / 心跳 / 重连 可选环境变量:`ANOX_PASSWORD`(对应中心 `auth.sdkPassword`)、`ANOX_INSTANCE_ID`。 全局客户端:`anoxsdk.Default()`,例如 `anoxsdk.Default().Logger().LogInfo(...)`。 ## 手动接入(高级) 不使用 `Init` 时,可自行创建客户端: ```go client := anoxsdk.NewClient(anoxsdk.ClientConfig{ CenterURL: "ws://10.241.190.180:8848/ws", BusinessPort: 9001, }) _ = client.Start(ctx) defer client.Stop() r.Use(anoxsdk.GinRecovery(client)) ``` ## 主要能力 - `Init` 一键接入(环境变量 + gin) - 连接中心 WebSocket 并注册业务端口 - 定时心跳(含 CPU / 内存指标) - 配置拉取与变更回调 - 异步批量日志上报 - Gin Panic 自动上报 - 断线自动重连 ## ClientConfig 说明 | 字段 | 说明 | |------|------| | `CenterURL` | 中心地址,如 `ws://host:8848/ws` | | `BusinessPort` | 本实例业务端口,网关会转发到此端口 | | `SDKPassword` | 与中心 `auth.sdkPassword` 一致,可留空 | | `HeartbeatInterval` | 心跳间隔,默认 15 秒 | ## 协议包 公共消息类型在 `gitee.com/empiror/anox-sdk/api`。