初始化
This commit is contained in:
52
main.go
Normal file
52
main.go
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user