feat(zulip): 添加全面的 Zulip 集成系统

* **新增 Zulip 模块**:包含完整的集成服务,涵盖客户端池(client pool)、会话管理及事件处理。
* **新增 WebSocket 网关**:用于处理 Zulip 的实时事件监听与双向通信。
* **新增安全服务**:支持 API 密钥加密存储及凭据的安全管理。
* **新增配置管理服务**:支持配置热加载(hot-reload),实现动态配置更新。
* **新增错误处理与监控服务**:提升系统的可靠性与可观测性。
* **新增消息过滤服务**:用于内容校验及速率限制(流控)。
* **新增流初始化与会话清理服务**:优化资源管理与回收。
* **完善测试覆盖**:包含单元测试及端到端(e2e)集成测试。
* **完善详细文档**:包括 API 参考手册、配置指南及集成概述。
* **新增地图配置系统**:实现游戏地点与 Zulip Stream(频道)及 Topic(话题)的逻辑映射。
* **新增环境变量配置**:涵盖 Zulip 服务器地址、身份验证及监控相关设置。
* **更新 App 模块**:注册并启用新的 Zulip 集成模块。
* **更新 Redis 接口**:以支持增强型的会话管理功能。
* **实现 WebSocket 协议支持**:确保与 Zulip 之间的实时双向通信。
This commit is contained in:
angjustinl
2025-12-25 22:22:30 +08:00
parent f6fa1ca1e3
commit 55cfda0532
46 changed files with 21488 additions and 2 deletions

View File

@@ -54,4 +54,60 @@ REDIS_DB=0
# 生产环境设置(生产环境取消注释)
# NODE_ENV=production
# LOG_LEVEL=info
# LOG_LEVEL=info
# ===========================================
# Zulip 集成配置
# ===========================================
# Zulip 服务器配置
ZULIP_SERVER_URL=https://zulip.xinghangee.icu/
ZULIP_BOT_EMAIL=cbot-bot@zulip.xinghangee.icu
ZULIP_BOT_API_KEY=your_bot_api_key
# Zulip API Key加密密钥生产环境必须配置至少32字符
# ZULIP_API_KEY_ENCRYPTION_KEY=your_32_character_encryption_key_here
# Zulip 错误处理配置
ZULIP_DEGRADED_MODE_ENABLED=false
ZULIP_AUTO_RECONNECT_ENABLED=true
ZULIP_MAX_RECONNECT_ATTEMPTS=5
ZULIP_RECONNECT_BASE_DELAY=5000
ZULIP_API_TIMEOUT=30000
ZULIP_MAX_RETRIES=3
# Zulip 连接限制配置
ZULIP_MAX_CONNECTIONS=100
ZULIP_SESSION_TIMEOUT=30
ZULIP_CLEANUP_INTERVAL=5
# Zulip 消息配置
ZULIP_MESSAGE_RATE_LIMIT=10
ZULIP_MESSAGE_MAX_LENGTH=10000
ZULIP_CONTENT_FILTER_ENABLED=true
# ZULIP_SENSITIVE_WORDS_PATH=config/zulip/sensitive-words.txt
# Zulip 允许的Stream列表逗号分隔空表示允许所有
# ZULIP_ALLOWED_STREAMS=General,Novice Village,Tavern
# WebSocket配置
# WEBSOCKET_PORT=3000
# WEBSOCKET_NAMESPACE=/game
# WEBSOCKET_PING_INTERVAL=25000
# WEBSOCKET_PING_TIMEOUT=5000
# ===========================================
# 监控配置
# ===========================================
# 健康检查间隔(毫秒)
MONITORING_HEALTH_CHECK_INTERVAL=60000
# 错误率阈值0-1
MONITORING_ERROR_RATE_THRESHOLD=0.1
# API响应时间阈值毫秒
MONITORING_RESPONSE_TIME_THRESHOLD=5000
# 内存使用阈值0-1
MONITORING_MEMORY_THRESHOLD=0.9