Files
whale-town-end/src/business/location_broadcast/location_broadcast.module.ts
moyin c31cbe559d feat:实现位置广播系统
- 添加位置广播核心控制器和服务
- 实现健康检查和位置同步功能
- 添加WebSocket实时位置更新支持
- 完善位置广播的测试覆盖
2026-01-08 23:05:52 +08:00

123 lines
3.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 位置广播业务模块
*
* 功能描述:
* - 整合位置广播系统的所有业务组件
* - 配置模块依赖关系和服务注入
* - 提供统一的模块导出接口
* - 支持模块化的系统架构
*
* 职责分离:
* - 模块配置:定义模块的提供者、控制器和导出
* - 依赖管理:管理模块间的依赖关系
* - 服务注入:配置依赖注入和服务绑定
* - 接口暴露:向外部模块提供服务接口
*
* 技术实现:
* - NestJS模块使用@Module装饰器定义模块
* - 依赖注入:配置服务的依赖注入关系
* - 模块导入:导入所需的核心模块和外部模块
* - 接口导出:导出供其他模块使用的服务
*
* 最近修改:
* - 2026-01-08: 功能新增 - 创建位置广播业务模块
*
* @author moyin
* @version 1.0.0
* @since 2026-01-08
* @lastModified 2026-01-08
*/
import { Module } from '@nestjs/common';
// 导入核心模块
import { LocationBroadcastCoreModule } from '../../core/location_broadcast_core/location_broadcast_core.module';
import { UserProfilesModule } from '../../core/db/user_profiles/user_profiles.module';
import { LoginCoreModule } from '../../core/login_core/login_core.module';
// 导入业务服务
import {
LocationBroadcastService,
LocationSessionService,
LocationPositionService,
} from './services';
import { CleanupService } from './services/cleanup.service';
// 导入控制器
import { LocationBroadcastController } from './controllers/location_broadcast.controller';
import { HealthController } from './controllers/health.controller';
// 导入WebSocket网关
import { LocationBroadcastGateway } from './location_broadcast.gateway';
// 导入守卫
import { WebSocketAuthGuard } from './websocket_auth.guard';
// 导入中间件
import { RateLimitMiddleware } from './rate_limit.middleware';
import { PerformanceMonitorMiddleware } from './performance_monitor.middleware';
/**
* 位置广播业务模块
*
* 模块职责:
* - 提供完整的位置广播业务功能
* - 集成WebSocket实时通信和HTTP API
* - 管理会话、位置和用户相关的业务逻辑
* - 提供统一的认证和权限验证
*
* 模块结构:
* - 服务层:业务逻辑处理和数据协调
* - 控制器层HTTP API端点和请求处理
* - 网关层WebSocket实时通信处理
* - 守卫层:认证和权限验证
*/
@Module({
imports: [
// 导入核心模块
LocationBroadcastCoreModule,
UserProfilesModule,
LoginCoreModule,
],
providers: [
// 业务服务
LocationBroadcastService,
LocationSessionService,
LocationPositionService,
CleanupService,
// 中间件
RateLimitMiddleware,
PerformanceMonitorMiddleware,
// WebSocket网关
LocationBroadcastGateway,
// 守卫
WebSocketAuthGuard,
],
controllers: [
// HTTP API控制器
LocationBroadcastController,
HealthController,
],
exports: [
// 导出业务服务供其他模块使用
LocationBroadcastService,
LocationSessionService,
LocationPositionService,
CleanupService,
// 导出中间件
RateLimitMiddleware,
PerformanceMonitorMiddleware,
// 导出WebSocket网关
LocationBroadcastGateway,
],
})
export class LocationBroadcastModule {
constructor() {
console.log('位置广播业务模块已初始化');
}
}