/** * 钉钉 WebSocket 连接管理 * * 职责: * - 管理单个钉钉账号的 WebSocket 连接 * - 实现应用层心跳检测 * - 处理连接重连逻辑,带指数退避 * - 消息去重 * * 基于 dingtalk-stream SDK,轻量化实现 */ import type { DingtalkConfig, DingtalkRawMessage } from './dingtalk-types.js'; export type DingtalkMessageHandler = (params: { accountId: string; data: DingtalkRawMessage; sessionWebhook: string; }) => Promise; export interface DingtalkConnectionOpts { accountId: string; config: DingtalkConfig; messageHandler: DingtalkMessageHandler; abortSignal?: AbortSignal; } export declare class DingtalkConnection { private readonly accountId; private readonly config; private readonly messageHandler; private readonly abortSignal?; private client; private topicRobot; private isStopped; private lastSocketAvailableTime; private connectionEstablishedTime; private isReconnecting; private reconnectAttempts; private keepAliveTimer; private activeMessageProcessing; private messageProcessingKeepAliveTimer; constructor(opts: DingtalkConnectionOpts); /** * 启动连接 */ start(): Promise; /** * 停止连接 */ stop(): void; /** * 建立连接 */ private connect; /** * 设置事件监听器 */ private setupEventListeners; /** * 启动心跳检测 */ private startKeepAlive; /** * 执行重连 */ private doReconnect; /** * 标记消息处理开始 */ private markMessageProcessingStart; /** * 标记消息处理结束 */ private markMessageProcessingEnd; /** * 处理连接错误 */ private handleConnectionError; } //# sourceMappingURL=dingtalk-connection.d.ts.map