41 lines
696 B
Go
41 lines
696 B
Go
|
|
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
|
||
|
|
})
|
||
|
|
}
|