package main import ( "fmt" "log" "net/http" "gateway/internal/config" "gateway/internal/router" "gateway/internal/service" "gateway/internal/ws" "shared/pkg/logger" ) func main() { // 加载配置 cfg, err := config.Load() if err != nil { log.Fatalf("Failed to load config: %v", err) } // 初始化用户服务 userService, err := service.NewUserService(cfg) if err != nil { log.Fatalf("Failed to initialize user service: %v", err) } logger.Info("User service initialized successfully") // 创建 WebSocket Hub hub := ws.NewHub(userService) go hub.Run() // 创建路由器 r := router.NewRouter(hub, userService) // 启动服务器 serverAddr := fmt.Sprintf(":%d", cfg.Server.Port) log.Printf("Gateway service starting on %s", serverAddr) log.Printf("WebSocket endpoint: ws://localhost%s/ws", serverAddr) log.Printf("Health check: http://localhost%s/health", serverAddr) if err := http.ListenAndServe(serverAddr, r.SetupRoutes()); err != nil { log.Fatalf("Failed to start server: %v", err) } }