|
|
// const express = require('express')
import express from 'express' import { WebSocketServer } from 'ws'
const app = express()
const PORT = 8080 // 可根据需要更改端口号
app.listen(PORT, () => { console.log(`服务器已启动,正在监听端口 ${PORT}`) }) app.use(express.json())
const levels = ['info', 'warn', 'success', 'error', 'finish']
app.post('/api/debug/cmd', (req, res) => { const { commandId, command, params } = req.body console.log('收到命令:', command, '参数:', params)
// 模拟返回数据
const mockResponse = { code: '0', msg: '成功', data: null, }
let messageNum = 0
// 异步广播消息
setTimeout(() => { res.json(mockResponse) const poll = setInterval(() => { if (messageNum === 10) { clearInterval(poll) } broadcast({ type: 'notification', data: { commandId, command, level: levels[Math.floor(Math.random() * levels.length)], title: `步骤${messageNum}执行完成`, content: `具体信息${messageNum}`, dateTime: new Date().toLocaleString(), }, }) messageNum++ }, Math.floor(Math.random() * (1000 - 500 + 1)) + 500) }, 1000) })
const wss = new WebSocketServer({ port: 9527 })
const clients = new Set() wss.on('connection', (ws) => { clients.add(ws) ws.on('close', () => { console.log('客户端断开') }) })
function broadcast(message) { try { const jsonMessage = JSON.stringify(message) clients.forEach((client) => { if (client.readyState === WebSocket.OPEN) { client.send(jsonMessage) } }) } catch (e) { console.log('广播发送失败:', e, message) } }
|