import express from 'express'
import expressWs from 'express-ws'
import { createProxyMiddleware } from 'http-proxy-middleware'
import { getEventList, getEventDetail } from './src/data/eventList.js'
import { dirname } from "node:path"
import { fileURLToPath } from "node:url"
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const proxy = createProxyMiddleware
let app = express()
app.use(express.json())
const appws = expressWs(app)
let list = []
app.ws('/xx/sockjs/xx.ws', (ws, req) => {
ws.send('3000连接成功')
ws.on('message', (msg) => {
console.log('ws:msg', msg);
let clients = appws.getWss('xx.ws').clients
clients.forEach(function(client) {
let data = { msg }
list.push(data)
client.send(JSON.stringify(data))
if (list.length === 1000) {
client.send('close')
client.close()
list = []
}
});
})
})
app.get('/web', function(req, res) {
const data = {
"path": "http://10.185.212.42:3003/web",
}
res.json({ code: "0", data })
})
app.get('/src/assets/img/*', function(req, res) {
console.log('req', req.url)
res.sendFile(__dirname + "/" + req.url);
console.log("Request for " + req.url + " received.");
})
app.post('/web/web/screen/event/getEventList', function(req, res) {
const processStatus = req.body.processStatus
let list = getEventList
if ([0, 1, 2, 3].includes(processStatus)) {
list = list.filter(item => item.processStatus == processStatus)
}
const data = {
list,
total: list.length,
}
res.json({ code: "0", data })
})
app.get('/web/web/screen/event/getEventDetail', function(req, res) {
let data = getEventDetail
const id = req.query.id
if (id) {
const item = getEventList.find(item => item.id == id)
data = { ...data, ...item }
}
res.json({ code: "0", data })
})
let webProxy = proxy({
secure: false,
changeOrigin: true,
ws: true,
target: '',
pathRewrite: {},
headers: {
'X-Requested-With': 'XMLHttpRequest',
Cookie: '',
},
})
app.use('^/web/', webProxy)
app.listen(3003)