Files
excel-api/main.go
2026-06-26 14:31:24 +08:00

53 lines
1.4 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Package main 应用程序入口
// 初始化配置、数据库、WebSocket Hub启动HTTP服务
// API服务运行在16702端口WebSocket服务运行在16703端口
package main
import (
"fmt"
"log"
"net/http"
"excel-api/config"
"excel-api/models"
"excel-api/router"
ws "excel-api/websocket"
)
func main() {
// 第一步:加载配置文件
if err := config.Init(); err != nil {
log.Fatalf("加载配置文件失败: %v", err)
}
log.Println("配置文件加载成功")
// 第二步:初始化数据库连接
if err := models.InitDB(); err != nil {
log.Fatalf("初始化数据库失败: %v", err)
}
// 第三步创建并启动WebSocket Hub
hub := ws.NewHub()
go hub.Run()
log.Println("WebSocket Hub 已启动")
// 第四步启动WebSocket独立服务端口16703
wsAddr := fmt.Sprintf(":%d", config.App.Server.WsPort)
wsRouter := http.NewServeMux()
wsRouter.HandleFunc("/ws", ws.HandleWebSocketHTTP(hub))
go func() {
log.Printf("WebSocket服务启动监听端口 %s", wsAddr)
if err := http.ListenAndServe(wsAddr, wsRouter); err != nil {
log.Printf("WebSocket服务启动失败: %v", err)
}
}()
// 第五步配置路由并启动API HTTP服务端口16702
r := router.Setup(hub)
apiAddr := fmt.Sprintf(":%d", config.App.Server.Port)
log.Printf("API服务启动监听端口 %s", apiAddr)
if err := r.Run(apiAddr); err != nil {
log.Fatalf("API服务启动失败: %v", err)
}
}