初始化

This commit is contained in:
李琦
2026-06-26 14:31:24 +08:00
commit 7049d7b1a5
20 changed files with 1917 additions and 0 deletions

52
main.go Normal file
View File

@@ -0,0 +1,52 @@
// 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)
}
}