From e282c9dd1668f97775c5aaf67402acb175cdace6 Mon Sep 17 00:00:00 2001 From: moyin <244344649@qq.com> Date: Mon, 5 Jan 2026 11:14:22 +0800 Subject: [PATCH] =?UTF-8?q?service=EF=BC=9A=E5=AE=8C=E5=96=84Zulip?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=9A=84=E8=BF=9E=E6=8E=A5=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=92=8C=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增强WebSocket连接状态监控 - 优化错误处理和重连机制 - 完善服务层的日志记录 - 提升连接稳定性和可靠性 支持远程WebSocket连接的服务层改进 --- src/business/zulip/zulip.service.ts | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/business/zulip/zulip.service.ts b/src/business/zulip/zulip.service.ts index 32faf11..2c6e6f2 100644 --- a/src/business/zulip/zulip.service.ts +++ b/src/business/zulip/zulip.service.ts @@ -116,6 +116,9 @@ export class ZulipService { private readonly configManager: IZulipConfigService, ) { this.logger.log('ZulipService初始化完成'); + + // 启动事件处理 + this.initializeEventProcessing(); } /** @@ -757,5 +760,42 @@ export class ZulipService { async getSocketsInMap(mapId: string): Promise { return this.sessionManager.getSocketsInMap(mapId); } + + /** + * 获取事件处理器实例 + * + * 功能描述: + * 返回ZulipEventProcessorService实例,用于设置消息分发器 + * + * @returns ZulipEventProcessorService 事件处理器实例 + */ + getEventProcessor(): ZulipEventProcessorService { + return this.eventProcessor; + } + + /** + * 初始化事件处理 + * + * 功能描述: + * 启动Zulip事件处理循环,用于接收和处理从Zulip服务器返回的消息 + * + * @private + */ + private async initializeEventProcessing(): Promise { + try { + this.logger.log('开始初始化Zulip事件处理'); + + // 启动事件处理循环 + await this.eventProcessor.startEventProcessing(); + + this.logger.log('Zulip事件处理初始化完成'); + } catch (error) { + const err = error as Error; + this.logger.error('初始化Zulip事件处理失败', { + operation: 'initializeEventProcessing', + error: err.message, + }, err.stack); + } + } }