/** * Server Log SSE Client (SSE 版本) * * 职责: * 1. 通过 EventSource 连接后端 SSE 端点 (/dev/logs/server-logs/stream) * 2. 实时接收服务端日志 * 3. 将接收到的日志通过 postMessage 转发给父窗口 (miaoda) * 4. 管理连接状态并通知父窗口 * 5. 支持通过 postMessage 从父窗口控制 (pause/resume/stop) * * 优势: * - 相比 HTTP 轮询,延迟更低(~10ms vs 0-2000ms) * - 无需持续请求,减少网络压力 * - EventSource 自带自动重连机制 * - 支持暂停/恢复,可按需关闭 */ export interface ServerLogSSEClientOptions { /** * 后端服务器 URL * @example 'http://localhost:3000' */ serverUrl: string; /** * SSE 端点路径 * @default '/dev/logs/server-logs/stream' */ sseEndpoint?: string; /** * 是否启用调试日志 * @default false */ debug?: boolean; } type ConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'error'; export declare class ServerLogSSEClient { private eventSource; private status; private isPaused; private options; private messageListener; private reconnectCount; constructor(options: ServerLogSSEClientOptions); /** * 启动 SSE 连接 */ start(): void; /** * 停止 SSE 连接 */ stop(): void; /** * 暂停接收日志(断开 SSE 连接) */ pause(): void; /** * 恢复接收日志(重新建立 SSE 连接) */ resume(): void; /** * 重新连接(用于断开后手动重连) */ reconnect(): void; /** * 获取当前连接状态 */ getStatus(): ConnectionStatus; /** * 是否暂停中 */ getIsPaused(): boolean; /** * 设置 EventSource 连接 */ private setupEventSource; /** * 清理 EventSource */ private cleanupEventSource; /** * 设置父窗口控制消息监听器 */ private setupParentMessageListener; /** * 清理消息监听器 */ private cleanupMessageListener; /** * 转发日志到父窗口 */ private forwardLog; /** * 更新连接状态并通知父窗口 */ private updateStatus; /** * 发送消息到父窗口 */ private postToParent; /** * 调试日志 */ private log; /** * 错误日志 */ private error; } export {};