Files
micro-service-api/exthernal-ttc-api/src/app.js
2025-11-27 21:55:02 +07:00

49 lines
1.5 KiB
JavaScript

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`)
})