From ef31a054c09cae4634a155aff5b5a830e39fc5eb Mon Sep 17 00:00:00 2001 From: yoyo Date: Tue, 23 Dec 2025 23:09:55 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E8=87=B3=20v1.1.3=20=E5=A2=9E=E5=8A=A0=20version=20ho?= =?UTF-8?q?st=5Fname=202=E4=B8=AA=E6=96=B0=E5=AD=97=E6=AE=B5=E4=BC=A0?= =?UTF-8?q?=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++----- internal/heartbeat/reporter.go | 21 +++++++++++++++++++-- version.json | 4 ++-- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d74687a..f919066 100644 --- a/README.md +++ b/README.md @@ -337,8 +337,8 @@ BACKEND_URL=http://192.168.1.100:8080 ./run.sh start 版本号统一从 `version.json` 文件读取: ```json { - "version": "1.1.2", - "tag": "v1.1.2" + "version": "1.1.3", + "tag": "v1.1.3" } ``` @@ -414,8 +414,8 @@ BACKEND_URL=http://192.168.1.100:8080 ./run.sh start 版本号和标签统一从 `version.json` 文件读取: ```json { - "version": "1.1.2", - "tag": "v1.1.2" + "version": "1.1.3", + "tag": "v1.1.3" } ``` @@ -605,7 +605,7 @@ tail -n 100 node.log ## 更新日志 -### v1.1.2 (最新) +### v1.1.3 (最新) **新增功能:** - ✨ 添加日志文件输出功能,支持配置日志文件路径和级别 diff --git a/internal/heartbeat/reporter.go b/internal/heartbeat/reporter.go index ecedcae..6f8c6f0 100644 --- a/internal/heartbeat/reporter.go +++ b/internal/heartbeat/reporter.go @@ -7,6 +7,8 @@ import ( "fmt" "io" "net/http" + "net/url" + "os" "sync" "time" @@ -110,10 +112,25 @@ func (r *Reporter) Stop() { close(r.stopCh) } +// buildHeartbeatBody 构建心跳请求体 +func buildHeartbeatBody() string { + hostname, err := os.Hostname() + if err != nil { + hostname = "unknown" + } + + values := url.Values{} + values.Set("type", "pingServer") + values.Set("version", "2") + values.Set("host_name", hostname) + + return values.Encode() +} + // RegisterNode 注册节点(安装时或首次启动时调用) func RegisterNode(cfg *config.Config) error { url := fmt.Sprintf("%s/api/node/heartbeat", cfg.Backend.URL) - req, err := http.NewRequest("POST", url, bytes.NewBufferString("type=pingServer")) + req, err := http.NewRequest("POST", url, bytes.NewBufferString(buildHeartbeatBody())) if err != nil { return fmt.Errorf("创建心跳请求失败: %w", err) } @@ -193,7 +210,7 @@ func RegisterNode(cfg *config.Config) error { func (r *Reporter) sendHeartbeat() { // 发送心跳(使用Form格式,兼容旧接口) url := fmt.Sprintf("%s/api/node/heartbeat", r.cfg.Backend.URL) - req, err := http.NewRequest("POST", url, bytes.NewBufferString("type=pingServer")) + req, err := http.NewRequest("POST", url, bytes.NewBufferString(buildHeartbeatBody())) if err != nil { r.logger.Error("创建心跳请求失败", zap.Error(err)) return diff --git a/version.json b/version.json index dc3a95c..ebeb4d5 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.1.2", - "tag": "v1.1.2" + "version": "1.1.3", + "tag": "v1.1.3" }