forked from datawhale/whale-town-end
- 将技术实现服务从business层迁移到core层 - 创建src/core/zulip/核心服务模块,包含API客户端、连接池等技术服务 - 保留src/business/zulip/业务逻辑,专注游戏相关的业务规则 - 通过依赖注入实现业务层与核心层的解耦 - 更新模块导入关系,确保架构分层清晰 重构后的架构符合单一职责原则,提高了代码的可维护性和可测试性
98 lines
3.6 KiB
TypeScript
98 lines
3.6 KiB
TypeScript
/**
|
||
* Zulip集成业务模块
|
||
*
|
||
* 功能描述:
|
||
* - 整合Zulip集成相关的业务逻辑和控制器
|
||
* - 提供完整的Zulip集成业务功能模块
|
||
* - 实现游戏与Zulip的业务逻辑协调
|
||
* - 支持WebSocket网关、会话管理、消息过滤等业务功能
|
||
*
|
||
* 架构设计:
|
||
* - 业务逻辑层:处理游戏相关的业务规则和流程
|
||
* - 核心服务层:封装技术实现细节和第三方API调用
|
||
* - 通过依赖注入实现业务层与技术层的解耦
|
||
*
|
||
* 业务服务:
|
||
* - ZulipService: 主协调服务,处理登录、消息发送等核心业务流程
|
||
* - ZulipWebSocketGateway: WebSocket统一网关,处理客户端连接
|
||
* - SessionManagerService: 会话状态管理和业务逻辑
|
||
* - MessageFilterService: 消息过滤和业务规则控制
|
||
*
|
||
* 核心服务(通过ZulipCoreModule提供):
|
||
* - ZulipClientService: Zulip REST API封装
|
||
* - ZulipClientPoolService: 客户端池管理
|
||
* - ConfigManagerService: 配置管理和热重载
|
||
* - ZulipEventProcessorService: 事件处理和消息转换
|
||
* - 其他技术支持服务
|
||
*
|
||
* 依赖模块:
|
||
* - ZulipCoreModule: Zulip核心技术服务
|
||
* - LoginCoreModule: 用户认证和会话管理
|
||
* - RedisModule: 会话状态缓存
|
||
* - LoggerModule: 日志记录服务
|
||
*
|
||
* 使用场景:
|
||
* - 游戏客户端通过WebSocket连接进行实时聊天
|
||
* - 游戏内消息与Zulip社群的双向同步
|
||
* - 基于位置的聊天上下文管理
|
||
* - 业务规则驱动的消息过滤和权限控制
|
||
*
|
||
* @author angjustinl
|
||
* @version 2.0.0
|
||
* @since 2025-12-31
|
||
*/
|
||
|
||
import { Module } from '@nestjs/common';
|
||
import { ZulipWebSocketGateway } from './zulip_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 { ZulipCoreModule } from '../../core/zulip/zulip-core.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';
|
||
|
||
@Module({
|
||
imports: [
|
||
// Zulip核心服务模块 - 提供技术实现相关的核心服务
|
||
ZulipCoreModule,
|
||
// Redis模块 - 提供会话状态缓存和数据存储
|
||
RedisModule,
|
||
// 日志模块 - 提供统一的日志记录服务
|
||
LoggerModule,
|
||
// 登录模块 - 提供用户认证和Token验证
|
||
LoginCoreModule,
|
||
],
|
||
providers: [
|
||
// 主协调服务 - 整合各子服务,提供统一业务接口
|
||
ZulipService,
|
||
// 会话管理服务 - 维护Socket_ID与Zulip_Queue_ID的映射关系
|
||
SessionManagerService,
|
||
// 消息过滤服务 - 敏感词过滤、频率限制、权限验证
|
||
MessageFilterService,
|
||
// Zulip事件处理服务 - 处理Zulip事件队列消息
|
||
ZulipEventProcessorService,
|
||
// 会话清理服务 - 定时清理过期会话
|
||
SessionCleanupService,
|
||
// WebSocket网关 - 处理游戏客户端WebSocket连接
|
||
ZulipWebSocketGateway,
|
||
],
|
||
controllers: [],
|
||
exports: [
|
||
// 导出主服务供其他模块使用
|
||
ZulipService,
|
||
// 导出会话管理服务
|
||
SessionManagerService,
|
||
// 导出消息过滤服务
|
||
MessageFilterService,
|
||
// 导出事件处理服务
|
||
ZulipEventProcessorService,
|
||
// 导出会话清理服务
|
||
SessionCleanupService,
|
||
// 导出WebSocket网关
|
||
ZulipWebSocketGateway,
|
||
],
|
||
})
|
||
export class ZulipModule {} |