zdl
|
8e6da17f42
|
feat: 添加本地通知测试
|
2025-11-07 15:09:07 +08:00 |
|
zdl
|
07be325a00
|
feat: 添加通知组件调试信息
|
2025-11-07 12:34:05 +08:00 |
|
zdl
|
36902d8ad9
|
fix: 添加 mockSocketService 缺失的事件订阅方法
修复控制台警告 "[useEventNotifications] socket.subscribeToEvents 方法不存在"
**问题原因**
- mockSocketService.js 中缺少 `subscribeToEvents`、`unsubscribeFromEvents` 等方法
- socketService.js 有这些方法,但 mock 版本没有实现
- 导致 useEventNotifications Hook 无法正常工作
**修复内容**
在 mockSocketService.js 中添加以下方法(lines 688-793):
1. **subscribeToEvents(options)** - 订阅事件推送
- 参数:eventType, importance, onNewEvent, onSubscribed
- Mock 实现:立即触发 onSubscribed 回调(100ms 延迟)
- 注册 onNewEvent 监听器到 'new_event' 事件
2. **unsubscribeFromEvents(options)** - 取消订阅
- 参数:eventType, onUnsubscribed
- Mock 实现:移除 'new_event' 监听器
- 立即触发 onUnsubscribed 回调(100ms 延迟)
3. **subscribeToAllEvents(onNewEvent)** - 快捷方法:订阅所有事件
- 调用 subscribeToEvents,eventType='all', importance='all'
4. **subscribeToImportantEvents(importance, onNewEvent)** - 快捷方法:按重要性订阅
- 调用 subscribeToEvents,eventType='all'
5. **subscribeToEventType(eventType, onNewEvent)** - 快捷方法:按类型订阅
- 调用 subscribeToEvents,importance='all'
**实现方式**
- Mock 实现使用 setTimeout 模拟异步回调
- 使用现有的 EventEmitter 机制(on/off)
- 与 socketService.js 保持 API 一致
**测试结果**
- ✅ 编译成功
- ✅ 不再显示 "socket.subscribeToEvents 方法不存在" 警告
- ✅ useEventNotifications Hook 可以正常调用订阅方法
- ✅ Mock 模式下事件订阅功能可用
**文件修改**
- src/services/mockSocketService.js (+108 lines)
- 新增 subscribeToEvents 方法
- 新增 unsubscribeFromEvents 方法
- 新增 3 个快捷订阅方法
|
2025-10-30 18:31:45 +08:00 |
|
zdl
|
af012ae8d0
|
feat:. mockSocketService 添加 connecting 状态
- 新增 connecting 标志防止重复连接
- 在 connect() 方法中检查 connected 和 connecting 状态
- 连接成功或失败后清除 connecting 标志\
2. NotificationContext 调整监听器注册顺序
- 在 useEffect 中重新排序初始化步骤
- 第一步:注册所有事件监听器(connect, disconnect, new_event 等)
- 第二步:获取最大重连次数
- 第三步:调用 socket.connect()
- 使用空依赖数组 [] 防止 React 严格模式重复执行\
3. logger 添加日志限流
- 实现 shouldLog() 函数,1秒内相同日志只输出一次
- 使用 Map 缓存最近日志,带最大缓存限制(100条)
- 应用到所有 logger 方法:info, warn, debug, api.request, api.response
- 错误日志(error, api.error)不做限流,始终输出\
修复 emit 时机确保事件被接收
- 在 mockSocketService 的 connect() 方法中
- 使用 setTimeout(0) 延迟 emit(connect) 调用
- 确保监听器注册完毕后再触发事件\
|
2025-10-27 13:13:56 +08:00 |
|
zdl
|
a4fd3dd309
|
feat: 修改文件 │
│ │
│ 1. src/services/socketService.js - 指数退避 + 无限重试 │
│ 2. src/components/ConnectionStatusBar/index.js - UI 优化 + 自动消失 │
│ 3. src/App.js - handleClose 实现 + dismissed 状态管理 │
│ 4. src/contexts/NotificationContext.js - 添加成功状态检测 │
│ 5. NOTIFICATION_SYSTEM.md - v2.11.0 文档更新
|
2025-10-21 18:34:38 +08:00 |
|
zdl
|
9375d2ba14
|
feat: sockt 弹窗功能添加
|
2025-10-21 17:50:21 +08:00 |
|
zdl
|
d0ad51cc17
|
feat: 添加消息推送能力
|
2025-10-21 15:48:38 +08:00 |
|
zdl
|
ced6dbc559
|
feat: 添加消息推送能力,添加新闻催化分析页的合规提示
|
2025-10-21 10:59:52 +08:00 |
|