增加时间处理组件
This commit is contained in:
@ -13,7 +13,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
sse: {
|
sse: {
|
||||||
heartbeatInterval: 15000, // 15秒
|
heartbeatInterval: 15000, // 15秒
|
||||||
allowedOrigins: process.env.ALLOWED_ORIGINS?.split(',') || ['http://localhost:3001']
|
allowedOrigins: '*', //process.env.ALLOWED_ORIGINS?.split(',') || ['http://localhost:3001']
|
||||||
},
|
},
|
||||||
rateLimit: {
|
rateLimit: {
|
||||||
windowMs: 15 * 60 * 1000, // 15分钟
|
windowMs: 15 * 60 * 1000, // 15分钟
|
||||||
|
25
package-lock.json
generated
25
package-lock.json
generated
@ -1,9 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "sse-server",
|
"name": "sse-server",
|
||||||
|
"version": "1.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
|
"name": "sse-server",
|
||||||
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "^2.2.0",
|
"body-parser": "^2.2.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
@ -11,6 +14,7 @@
|
|||||||
"express-rate-limit": "^7.5.1",
|
"express-rate-limit": "^7.5.1",
|
||||||
"express-sse": "^1.0.0",
|
"express-sse": "^1.0.0",
|
||||||
"helmet": "^8.1.0",
|
"helmet": "^8.1.0",
|
||||||
|
"moment-timezone": "^0.6.0",
|
||||||
"uuid": "^11.1.0"
|
"uuid": "^11.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -538,6 +542,27 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/moment": {
|
||||||
|
"version": "2.30.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
|
||||||
|
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/moment-timezone": {
|
||||||
|
"version": "0.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.6.0.tgz",
|
||||||
|
"integrity": "sha512-ldA5lRNm3iJCWZcBCab4pnNL3HSZYXVb/3TYr75/1WCTWYuTqYUb5f/S384pncYjJ88lbO8Z4uPDvmoluHJc8Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"moment": "^2.29.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
"express-rate-limit": "^7.5.1",
|
"express-rate-limit": "^7.5.1",
|
||||||
"express-sse": "^1.0.0",
|
"express-sse": "^1.0.0",
|
||||||
"helmet": "^8.1.0",
|
"helmet": "^8.1.0",
|
||||||
|
"moment-timezone": "^0.6.0",
|
||||||
"uuid": "^11.1.0"
|
"uuid": "^11.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const clients = require('../lib/clients');
|
const clients = require('../lib/clients');
|
||||||
|
const moment = require('moment-timezone')
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -18,7 +19,9 @@ router.post('/', (req, res) => {
|
|||||||
return res.status(400).json({error: 'Message is required'});
|
return res.status(400).json({error: 'Message is required'});
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = { message, time: new Date().toISOString() };
|
const shanghaiTime = moment().tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss');
|
||||||
|
|
||||||
|
const data = {message, time: shanghaiTime};
|
||||||
|
|
||||||
if (clientId) {
|
if (clientId) {
|
||||||
const clientRes = clients.get(clientId);
|
const clientRes = clients.get(clientId);
|
||||||
|
@ -10,6 +10,7 @@ const express = require('express');
|
|||||||
const { v4: uuidV4 } = require('uuid');
|
const { v4: uuidV4 } = require('uuid');
|
||||||
const { setupSSEHeaders } = require('../lib/sse');
|
const { setupSSEHeaders } = require('../lib/sse');
|
||||||
const clients = require('../lib/clients');
|
const clients = require('../lib/clients');
|
||||||
|
const moment = require('moment-timezone');
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -18,11 +19,13 @@ router.get('/', (req, res) => {
|
|||||||
|
|
||||||
setupSSEHeaders(res);
|
setupSSEHeaders(res);
|
||||||
|
|
||||||
|
const shanghaiTime = moment().tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss');
|
||||||
|
|
||||||
// 立即发送确认
|
// 立即发送确认
|
||||||
res.write(`data: ${JSON.stringify({
|
res.write(`data: ${JSON.stringify({
|
||||||
status: 'connected',
|
status: 'connected',
|
||||||
clientId,
|
clientId,
|
||||||
time: new Date().toISOString()
|
time: shanghaiTime
|
||||||
})}\n\n`);
|
})}\n\n`);
|
||||||
|
|
||||||
clients.add(clientId, res);
|
clients.add(clientId, res);
|
||||||
|
Reference in New Issue
Block a user