feat: system status helper

This commit is contained in:
pk5ls20
2024-12-21 13:11:10 +08:00
parent 6fdaeb183f
commit 795e1da17c
5 changed files with 129 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
import { RequestHandler } from 'express';
import { SystemStatus, statusHelperSubscription } from "@/core/helper/status";
export const StatusRealTimeHandler: RequestHandler = async (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Connection', 'keep-alive');
const sendStatus = (status: SystemStatus) => {
try{
res.write(`data: ${JSON.stringify(status)}\n\n`);
} catch (e) {
console.error(`An error occurred when writing sendStatus data to client: ${e}`);
}
};
statusHelperSubscription.on('statusUpdate', sendStatus);
req.on('close', () => {
statusHelperSubscription.off('statusUpdate', sendStatus);
res.end();
});
};

View File

@@ -1,8 +1,10 @@
import { Router } from 'express';
import { PackageInfoHandler } from '../api/BaseInfo';
import { StatusRealTimeHandler } from "@webapi/api/Status";
const router = Router();
// router: 获取nc的package.json信息
router.get('/PackageInfo', PackageInfoHandler);
router.get('/GetSysStatusRealTime', StatusRealTimeHandler);
export { router as BaseRouter };

View File

@@ -1,4 +1,5 @@
import type { LoginListItem, SelfInfo } from '@/core';
import type { OneBotConfig } from "@/onebot/config/config";
interface LoginRuntimeType {
LoginCurrentTime: number;