feat: log level config

feat: ffmpeg args placeholder
This commit is contained in:
2024-10-29 03:35:21 +08:00
parent 2afcac48dc
commit dfdb6003ea
23 changed files with 212 additions and 71 deletions

35
server/server.go Normal file → Executable file
View File

@@ -3,10 +3,10 @@ package server
import (
"embed"
"html/template"
"live-streamer/config"
c "live-streamer/config"
"live-streamer/logger"
"live-streamer/streamer"
mywebsocket "live-streamer/websocket"
"log"
"net/http"
"sync"
"time"
@@ -14,6 +14,7 @@ import (
"github.com/gin-gonic/gin"
uuid "github.com/gofrs/uuid/v5"
"github.com/gorilla/websocket"
"go.uber.org/zap"
)
//go:embed static
@@ -41,7 +42,17 @@ type Client struct {
hasSentSize int
}
var GlobalServer *Server
var (
GlobalServer *Server
config *c.Config
log *zap.Logger
)
func init() {
config = c.GlobalConfig
log = logger.GlobalLogger
}
func NewServer(addr string, dealInputFunc InputFunc) {
GlobalServer = &Server{
@@ -56,7 +67,7 @@ func (s *Server) Run() {
router := gin.New()
tpl, err := template.ParseFS(staticFiles, "static/*")
if err != nil {
log.Fatalf("Error parsing templates: %v", err)
log.Fatal("parsing templates error", zap.Error(err))
}
router.SetHTMLTemplate(tpl)
@@ -69,7 +80,7 @@ func (s *Server) Run() {
go func() {
if err := router.Run(s.addr); err != nil {
log.Fatalf("Error starting server: %v", err)
log.Fatal("starting server error", zap.Error(err))
}
}()
}
@@ -86,7 +97,7 @@ func (s *Server) handleWebSocket(c *gin.Context) {
id, err := uuid.NewV7()
if err != nil {
log.Printf("generating uuid error: %v", err)
log.Error("generating uuid error", zap.Error(err))
return
}
client := &Client{id: id.String(), conn: ws, hasSentSize: 0}
@@ -102,7 +113,7 @@ func (s *Server) handleWebSocket(c *gin.Context) {
delete(s.clients, client.id)
s.mu.Unlock()
if r := recover(); r != nil {
log.Printf("webSocket handler panic: %v", r)
log.Panic("webSocket handler panic", zap.Any("recover", r))
}
}()
@@ -126,7 +137,7 @@ func (s *Server) handleWebSocket(c *gin.Context) {
client.mu.Unlock()
if err != nil {
if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) {
log.Printf("websocket error: %v", err)
log.Error("websocket error", zap.Error(err))
}
break
}
@@ -136,8 +147,8 @@ func (s *Server) handleWebSocket(c *gin.Context) {
func AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
if config.GlobalConfig.Server.Token == "" ||
c.Query("token") == config.GlobalConfig.Server.Token {
if config.Server.Token == "" ||
c.Query("token") == config.Server.Token {
c.Next()
} else {
c.AbortWithStatus(http.StatusUnauthorized)
@@ -150,7 +161,7 @@ func (s *Server) Broadcast(obj mywebsocket.Date) {
for _, client := range s.clients {
obj.Timestamp = time.Now().UnixMilli()
if err := client.conn.WriteJSON(obj); err != nil {
log.Printf("websocket writing message error: %v", err)
log.Error("websocket writing message error", zap.Error(err))
}
}
s.mu.Unlock()
@@ -161,7 +172,7 @@ func (s *Server) Single(userID string, obj mywebsocket.Date) {
if client, ok := s.clients[userID]; ok {
obj.Timestamp = time.Now().UnixMilli()
if err := client.conn.WriteJSON(obj); err != nil {
log.Printf("websocket writing message error: %v", err)
log.Error("websocket writing message error", zap.Error(err))
}
}
s.mu.Unlock()

0
server/static/index.html Normal file → Executable file
View File