feat: 初始化 Go 后端项目骨架
- 使用 Gin 框架替代原始 net/http,方便调试 - 实现 WebSocket 端点 (/ws),支持 ping/query/config/interrupt 消息 - 实现健康检查 REST 接口 (/api/health) - 定义协议数据结构 (models) - 心跳检测(60 秒超时断开)
This commit is contained in:
40
backend/cmd/server/main.go
Normal file
40
backend/cmd/server/main.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/hhs/camtalk/internal/ws"
|
||||
)
|
||||
|
||||
var startTime = time.Now()
|
||||
|
||||
func main() {
|
||||
r := gin.Default()
|
||||
|
||||
// REST API
|
||||
api := r.Group("/api")
|
||||
{
|
||||
api.GET("/health", healthHandler)
|
||||
}
|
||||
|
||||
// WebSocket
|
||||
r.GET("/ws", ws.ServeWS)
|
||||
|
||||
log.Println("CamTalk gateway starting on :8080")
|
||||
if err := r.Run(":8080"); err != nil {
|
||||
log.Fatalf("failed to start server: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// healthHandler 健康检查。
|
||||
func healthHandler(c *gin.Context) {
|
||||
c.JSON(200, gin.H{
|
||||
"status": "ok",
|
||||
"version": "0.1.0",
|
||||
"uptime": time.Since(startTime).String(),
|
||||
"active_sessions": 0, // TODO: 接入 Session Manager
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user