package main import ( "log" "net/http" "github.com/emsoft/HospitalPay-Go/internal/config" "github.com/emsoft/HospitalPay-Go/internal/pkg/database" "github.com/emsoft/HospitalPay-Go/internal/pkg/logger" "github.com/emsoft/HospitalPay-Go/internal/server" "github.com/prometheus/client_golang/prometheus/promhttp" ) func main() { // 初始化配置 if err := config.Init(); err != nil { log.Fatalf("Failed to initialize config: %v", err) } // 初始化日志 if err := logger.Init(); err != nil { log.Fatalf("Failed to initialize logger: %v", err) } // 初始化数据库 if err := database.Init(); err != nil { logger.Fatalf("Failed to initialize database: %v", err) } defer database.Close() // 启动监控服务器 if config.GlobalConfig.Monitoring.Enabled { go func() { http.Handle("/metrics", promhttp.Handler()) addr := ":" + config.GlobalConfig.Monitoring.PrometheusPort logger.Infof("Starting monitoring server on %s", addr) if err := http.ListenAndServe(addr, nil); err != nil { logger.Fatalf("Failed to start monitoring server: %v", err) } }() } // 创建并启动 Socket 服务器 socketServer := server.NewSocketServer() if err := socketServer.Start(); err != nil { logger.Fatalf("Failed to start socket server: %v", err) } }