Files
godpn/internal/tracker/server.go
T
2025-07-22 18:20:10 +03:00

38 lines
652 B
Go

package tracker
import (
"sync"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)
type Server struct {
router *echo.Echo
mu sync.RWMutex
tracker *Tracker
}
func NewServer() *Server {
return &Server{
router: echo.New(),
tracker: NewTracker(),
}
}
func (s *Server) Configure() {
// Middleware
s.router.Use(middleware.Logger())
s.router.Use(middleware.Recover())
s.router.Use(middleware.CORS())
// Роуты
s.router.POST("/register", s.registerHandler)
s.router.GET("/peers", s.listPeers)
s.router.GET("/ws", s.websocketHandler)
}
func (s *Server) Run() error {
return s.router.Start(":8080")
}