Add files via upload

This commit is contained in:
公明
2026-02-28 00:52:17 +08:00
committed by GitHub
parent 5e28782b1f
commit 7270e3c3d1
4 changed files with 90 additions and 15 deletions
+7 -4
View File
@@ -15,8 +15,9 @@ import (
"go.uber.org/zap"
)
// StartDing 启动钉钉 Stream 长连接(无需公网),收到消息后调用 handler 并通过 SessionWebhook 回复
func StartDing(cfg config.RobotDingtalkConfig, h MessageHandler, logger *zap.Logger) {
// StartDing 启动钉钉 Stream 长连接(无需公网),收到消息后调用 handler 并通过 SessionWebhook 回复
// ctx 被取消时长连接会退出,便于配置变更时重启。
func StartDing(ctx context.Context, cfg config.RobotDingtalkConfig, h MessageHandler, logger *zap.Logger) {
if !cfg.Enabled || cfg.ClientID == "" || cfg.ClientSecret == "" {
return
}
@@ -30,9 +31,11 @@ func StartDing(cfg config.RobotDingtalkConfig, h MessageHandler, logger *zap.Log
)
logger.Info("钉钉 Stream 正在连接…", zap.String("client_id", cfg.ClientID))
go func() {
err := streamClient.Start(context.Background())
if err != nil {
err := streamClient.Start(ctx)
if err != nil && ctx.Err() == nil {
logger.Error("钉钉 Stream 长连接退出", zap.Error(err))
} else if ctx.Err() != nil {
logger.Info("钉钉 Stream 已按配置重启关闭")
}
}()
logger.Info("钉钉 Stream 已启动(无需公网),等待收消息", zap.String("client_id", cfg.ClientID))
+7 -4
View File
@@ -19,8 +19,9 @@ type larkTextContent struct {
Text string `json:"text"`
}
// StartLark 启动飞书长连接(无需公网),收到消息后调用 handler 并回复
func StartLark(cfg config.RobotLarkConfig, h MessageHandler, logger *zap.Logger) {
// StartLark 启动飞书长连接(无需公网),收到消息后调用 handler 并回复
// ctx 被取消时长连接会退出,便于配置变更时重启。
func StartLark(ctx context.Context, cfg config.RobotLarkConfig, h MessageHandler, logger *zap.Logger) {
if !cfg.Enabled || cfg.AppID == "" || cfg.AppSecret == "" {
return
}
@@ -34,9 +35,11 @@ func StartLark(cfg config.RobotLarkConfig, h MessageHandler, logger *zap.Logger)
larkws.WithLogLevel(larkcore.LogLevelInfo),
)
go func() {
err := wsClient.Start(context.Background())
if err != nil {
err := wsClient.Start(ctx)
if err != nil && ctx.Err() == nil {
logger.Error("飞书长连接退出", zap.Error(err))
} else if ctx.Err() != nil {
logger.Info("飞书长连接已按配置重启关闭")
}
}()
logger.Info("飞书长连接已启动(无需公网)", zap.String("app_id", cfg.AppID))