chore: v0.6.0 baseline — 主题美化前存档
已实现:HTTP/TCP/Banner 探测、90 天可用率、表格/卡片视图、 数据源过滤、UptimeRobot 双向兼容、服务端驱动的刷新节奏、 刷新接口滥用防护与信息泄露控制。
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import net from 'node:net';
|
||||
|
||||
export function probeTcp(monitor) {
|
||||
const started = Date.now();
|
||||
const timeoutMs = (monitor.timeout ?? 10) * 1000;
|
||||
return new Promise((resolve) => {
|
||||
const socket = net.createConnection({ host: monitor.host, port: monitor.port });
|
||||
const finish = (status, detail) => {
|
||||
socket.destroy();
|
||||
resolve({ status, latency: Date.now() - started, code: null, detail });
|
||||
};
|
||||
socket.setTimeout(timeoutMs, () => finish('down', 'TCP 连接超时'));
|
||||
socket.once('error', (err) =>
|
||||
finish('down', err.code === 'ECONNREFUSED' ? '连接被拒绝(端口关闭)' : (err.code || err.message))
|
||||
);
|
||||
socket.once('connect', () => finish('up', '端口可连接'));
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user