Files
pika/internal/handler/agent_handler.go
T
榆木 9ae1fea7d8 下载地址增加 key 认证
agent二进制下载地址增加 key 认证,防止刷流量
2026-01-11 19:19:58 +08:00

52 lines
1.6 KiB
Go

package handler
import (
"github.com/dushixiang/pika/internal/service"
ws "github.com/dushixiang/pika/internal/websocket"
"github.com/gorilla/websocket"
"go.uber.org/zap"
)
type AgentHandler struct {
logger *zap.Logger
agentService *service.AgentService
trafficService *service.TrafficService
metricService *service.MetricService
monitorSvc *service.MonitorService
tamperService *service.TamperService
ddnsService *service.DDNSService
sshLoginService *service.SSHLoginService
apiKeyService *service.ApiKeyService
wsManager *ws.Manager
upgrader websocket.Upgrader
}
func NewAgentHandler(logger *zap.Logger, agentService *service.AgentService, trafficService *service.TrafficService,
metricService *service.MetricService, monitorService *service.MonitorService, tamperService *service.TamperService,
ddnsService *service.DDNSService, sshLoginService *service.SSHLoginService, apiKeyService *service.ApiKeyService, wsManager *ws.Manager) *AgentHandler {
h := &AgentHandler{
logger: logger,
agentService: agentService,
trafficService: trafficService,
metricService: metricService,
monitorSvc: monitorService,
tamperService: tamperService,
ddnsService: ddnsService,
sshLoginService: sshLoginService,
apiKeyService: apiKeyService,
wsManager: wsManager,
}
// 初始化upgrader,需要在创建handler之后因为需要引用h.checkOrigin
h.upgrader = websocket.Upgrader{
ReadBufferSize: 1024 * 32,
WriteBufferSize: 1024 * 32,
}
// 设置WebSocket消息处理器
wsManager.SetMessageHandler(h.handleWebSocketMessage)
return h
}