/** * @file SSE流路由处理器 * @author Yk * @createdAt 2025-07-01 * @lastModifiedAt 2025-07-01 * @description 处理SSE连接 */ const express = require('express'); const clients = require('../lib/clients'); const moment = require('moment-timezone') const router = express.Router(); router.post('/', (req, res) => { const {message, clientId} = req.body; if (!message) { return res.status(400).json({error: 'Message is required'}); } const shanghaiTime = moment().tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss'); const data = {message, time: shanghaiTime}; if (clientId) { const clientRes = clients.get(clientId); if (!clientRes) { return res.status(404).json({error: 'Client not found'}); } clientRes.write(`data: ${JSON.stringify(data)}\n\n`); return res.json({message: 'Message delivered', clientId}); } const count = clients.broadcast(data); return res.json({message: 'Message broadcasted', clients: count}); }); module.exports = router;