import express from 'express' import cors from 'cors' import dotenv from 'dotenv' import { createServer } from 'http' // ✅ เพิ่ม import { Server } from 'socket.io' // ✅ เพิ่ม import router from './routes/route.js' import { globalResponseHandler } from './middlewares/responseHandler.js' import { SocketManager } from './socket/socketManager.js' // ✅ เพิ่ม Class ที่เราจะสร้าง dotenv.config() const app = express() app.use(cors()) app.use(express.json({ limit: '10mb' })) app.use(globalResponseHandler); app.use((err, req, res, next) => { if (err instanceof SyntaxError && err.status === 400 && 'body' in err) { console.error('🟥 Invalid JSON Received:', err.message) return res.status(400).json({ code: "400", message: "Invalid JSON format", message_th: "โครงสร้าง JSON ไม่ถูกต้อง", data: [] }) } next() }) app.use('/api/ttc', router) // ✅ เปลี่ยนการ Listen เป็น HTTP Server + Socket const httpServer = createServer(app) const io = new Server(httpServer, { cors: { origin: "*", // ปรับตามความเหมาะสม methods: ["GET", "POST"] } }) // ✅ เรียกใช้ Socket Manager ตาม Pattern const socketManager = new SocketManager(io) socketManager.initialize() const PORT = process.env.PORT || 3000 httpServer.listen(PORT, () => { console.log(`✅ ${process.env.PJ_NAME} running on port ${PORT} with WebSocket`) })