Files
relay-server/main.go
2025-02-11 23:03:31 +01:00

66 lines
1.4 KiB
Go

package main
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/adaptor"
"github.com/gofiber/fiber/v2/middleware/cors"
socketio "github.com/googollee/go-socket.io"
"log"
"relay-server/database"
"relay-server/router"
"relay-server/socket"
"relay-server/utils"
)
func main() {
app := fiber.New(fiber.Config{
ErrorHandler: utils.ErrorHandler,
})
server := socketio.NewServer(nil)
app.Use(cors.New(cors.Config{
AllowOrigins: "http://localhost:5173",
AllowHeaders: "Origin, Content-Type, Accept, Authorization",
AllowMethods: "GET,POST,PUT,DELETE",
//AllowCredentials: true,
}))
db, err := database.Init()
if err != nil {
log.Fatal("Failed to initialize database")
}
defer func() {
if err := db.Close(); err != nil {
log.Fatalf("Failed to close database connection: %v", err)
}
log.Println("Database connection closed")
}()
err = socket.InitializeSocket(server)
if err != nil {
log.Println(err)
}
go func() {
err := server.Serve()
if err != nil {
log.Println(err)
}
}()
defer func(server *socketio.Server) {
err := server.Close()
if err != nil {
log.Println("disconnected from server", err)
}
}(server)
app.Use("/socket.io/*", adaptor.HTTPHandler(server))
app.Get("/socket.io/", adaptor.HTTPHandler(server))
// Setup routes
router.SetupRoutes(app)
log.Fatal(app.Listen(":3000"))
}