docs(zulip): 完善Zulip业务模块功能文档

范围: src/business/zulip/README.md
- 补充对外提供的接口章节(14个公共方法)
- 添加使用的项目内部依赖说明(7个依赖)
- 完善核心特性描述(5个特性)
- 添加潜在风险评估(4个风险及缓解措施)
- 优化文档结构和内容完整性
This commit is contained in:
moyin
2026-01-15 10:53:04 +08:00
parent 30a4a2813d
commit ed04b8c92d
32 changed files with 622 additions and 8886 deletions

View File

@@ -2,128 +2,79 @@
* Zulip集成业务模块
*
* 功能描述:
* - 整合Zulip集成相关的业务逻辑和控制器
* - 提供完整的Zulip集成业务功能模块
* - 实现游戏与Zulip的业务逻辑协调
* - 支持WebSocket网关、会话管理、消息过滤等业务功能
* - 提供Zulip账号关联管理业务逻辑
* - 提供Zulip事件处理业务逻辑
* - 通过 SESSION_QUERY_SERVICE 接口与 ChatModule 解耦
*
* 架构设计
* - 业务逻辑层:处理游戏相关的业务规则和流程
* - 核心服务层封装技术实现细节和第三方API调用
* - 通过依赖注入实现业务层与技术层的解耦
* 架构说明
* - Business层专注业务逻辑处理不包含HTTP协议处理
* - Controller已迁移到Gateway层src/gateway/zulip/
* - 通过 Core 层接口解耦,不直接依赖其他模块的具体实现
*
* 业务服务
* - ZulipService: 主协调服务,处理登录、消息发送等核心业务流程
* - CleanWebSocketGateway: WebSocket统一网关处理客户端连接
* - SessionManagerService: 会话状态管理和业务逻辑
* - MessageFilterService: 消息过滤和业务规则控制
*
* 核心服务通过ZulipCoreModule提供
* - ZulipClientService: Zulip REST API封装
* - ZulipClientPoolService: 客户端池管理
* - ConfigManagerService: 配置管理和热重载
* - ZulipEventProcessorService: 事件处理和消息转换
* - 其他技术支持服务
*
* 依赖模块:
* - ZulipCoreModule: Zulip核心技术服务
* - LoginCoreModule: 用户认证和会话管理
* - RedisModule: 会话状态缓存
* - LoggerModule: 日志记录服务
*
* 使用场景:
* - 游戏客户端通过WebSocket连接进行实时聊天
* - 游戏内消息与Zulip社群的双向同步
* - 基于位置的聊天上下文管理
* - 业务规则驱动的消息过滤和权限控制
* 迁移记录
* - 2026-01-14: 架构优化 - 将所有Controller迁移到Gateway层符合四层架构规范 (修改者: moyin)
* - 2026-01-14: 架构优化 - 移除冗余的DynamicConfigManagerService声明该服务已由ZulipCoreModule提供 (修改者: moyin)
* - 2026-01-14: 聊天功能迁移到新的四层架构模块
* - CleanWebSocketGateway -> gateway/chat/chat.gateway.ts
* - ZulipService(聊天部分) -> business/chat/chat.service.ts
* - SessionManagerService -> business/chat/services/chat_session.service.ts
* - MessageFilterService -> business/chat/services/chat_filter.service.ts
* - SessionCleanupService -> business/chat/services/chat_cleanup.service.ts
* - ChatController -> gateway/chat/chat.controller.ts
* - 2026-01-14: 通过 Core 层接口解耦,不再直接依赖 ChatModule 的具体实现
*
* @author angjustinl
* @version 1.1.0
* @version 3.0.0
* @since 2026-01-06
* @lastModified 2026-01-14
*/
import { Module } from '@nestjs/common';
import { CleanWebSocketGateway } from './clean_websocket.gateway';
import { ZulipService } from './zulip.service';
import { SessionManagerService } from './services/session_manager.service';
import { MessageFilterService } from './services/message_filter.service';
// 业务服务
import { ZulipEventProcessorService } from './services/zulip_event_processor.service';
import { SessionCleanupService } from './services/session_cleanup.service';
import { ZulipAccountsBusinessService } from './services/zulip_accounts_business.service';
import { ChatController } from './chat.controller';
import { WebSocketDocsController } from './websocket_docs.controller';
import { WebSocketOpenApiController } from './websocket_openapi.controller';
import { ZulipAccountsController } from './zulip_accounts.controller';
import { WebSocketTestController } from './websocket_test.controller';
import { DynamicConfigController } from './dynamic_config.controller';
// 依赖模块
import { ZulipCoreModule } from '../../core/zulip_core/zulip_core.module';
import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module';
import { RedisModule } from '../../core/redis/redis.module';
import { LoggerModule } from '../../core/utils/logger/logger.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module';
import { AuthModule } from '../auth/auth.module';
// 通过接口依赖 ChatModule解耦
import { ChatModule } from '../chat/chat.module';
import { DynamicConfigManagerService } from '../../core/zulip_core/services/dynamic_config_manager.service';
@Module({
imports: [
// Zulip核心服务模块 - 提供技术实现相关的核心服务
// Zulip核心服务模块
ZulipCoreModule,
// Zulip账号关联模块 - 提供账号关联管理功能
// Zulip账号关联模块
ZulipAccountsModule.forRoot(),
// Redis模块 - 提供会话状态缓存和数据存储
// Redis模块
RedisModule,
// 日志模块 - 提供统一的日志记录服务
// 日志模块
LoggerModule,
// 登录模块 - 提供用户认证和Token验证
// 登录模块
LoginCoreModule,
// 认证模块 - 提供JWT验证和用户认证服务
// 认证模块
AuthModule,
// 聊天模块 - 通过 SESSION_QUERY_SERVICE 接口提供会话查询能力
// ZulipEventProcessorService 依赖接口而非具体实现,实现解耦
ChatModule,
],
providers: [
// 主协调服务 - 整合各子服务,提供统一业务接口
ZulipService,
// 会话管理服务 - 维护Socket_ID与Zulip_Queue_ID的映射关系
SessionManagerService,
// 消息过滤服务 - 敏感词过滤、频率限制、权限验证
MessageFilterService,
// Zulip事件处理服务 - 处理Zulip事件队列消息
ZulipEventProcessorService,
// 会话清理服务 - 定时清理过期会话
SessionCleanupService,
// WebSocket网关 - 处理游戏客户端WebSocket连接
CleanWebSocketGateway,
// 动态配置管理服务 - 从Zulip服务器动态获取配置
DynamicConfigManagerService,
],
controllers: [
// 聊天相关的REST API控制器
ChatController,
// WebSocket API文档控制器
WebSocketDocsController,
// WebSocket OpenAPI规范控制器
WebSocketOpenApiController,
// Zulip账号关联管理控制器
ZulipAccountsController,
// WebSocket测试工具控制器 - 提供测试页面和API监控
WebSocketTestController,
// 动态配置管理控制器 - 提供配置管理API
DynamicConfigController,
// Zulip账号业务服务 - 账号关联管理
ZulipAccountsBusinessService,
],
exports: [
// 导出主服务供其他模块使用
ZulipService,
// 导出会话管理服务
SessionManagerService,
// 导出消息过滤服务
MessageFilterService,
// 导出事件处理服务
ZulipEventProcessorService,
// 导出会话清理服务
SessionCleanupService,
// 导出WebSocket网关
CleanWebSocketGateway,
// 导出动态配置管理服务
// 导出账号业务服务
ZulipAccountsBusinessService,
// 重新导出动态配置管理服务来自ZulipCoreModule
DynamicConfigManagerService,
],
})
export class ZulipModule {}
export class ZulipModule {}