feat: 初始化 Go 后端项目骨架

- 使用 Gin 框架替代原始 net/http,方便调试
- 实现 WebSocket 端点 (/ws),支持 ping/query/config/interrupt 消息
- 实现健康检查 REST 接口 (/api/health)
- 定义协议数据结构 (models)
- 心跳检测(60 秒超时断开)
This commit is contained in:
hhs
2026-06-12 17:34:43 +08:00
parent 10f676f3b4
commit 9f876df816
5 changed files with 428 additions and 0 deletions

View 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
})
}