38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
const express = require('express')
|
|
const http = require('http')
|
|
const cors = require('cors')
|
|
const ChatServer = require('./chat')
|
|
|
|
class AppServer {
|
|
constructor() {
|
|
this.app = express()
|
|
|
|
// 配置CORS
|
|
this.app.use(cors({
|
|
origin: process.env.ALLOWED_ORIGINS ?
|
|
process.env.ALLOWED_ORIGINS.split(',') :
|
|
'http://localhost:5173', // Vite默认开发端口
|
|
methods: ['GET', 'POST']
|
|
}))
|
|
|
|
// 创建HTTP服务器
|
|
this.server = http.createServer(this.app)
|
|
|
|
// 初始化WebSocket服务器
|
|
this.chatServer = new ChatServer(this.server)
|
|
|
|
// 添加健康检查接口
|
|
this.app.get('/health', (req, res) => {
|
|
res.json({ status: 'ok', timestamp: new Date().toISOString() })
|
|
})
|
|
}
|
|
|
|
start(port) {
|
|
this.server.listen(port, () => {
|
|
console.log(`聊天服务器已启动,监听端口 ${port}`)
|
|
console.log(`健康检查接口: http://localhost:${port}/health`)
|
|
})
|
|
}
|
|
}
|
|
|
|
module.exports = AppServer |