Files
OpenIsle/websocket_service/AGENTS.md

49 lines
1.8 KiB
Markdown
Raw Permalink 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.
# WebSocket Service 协作指引
## 1) 适用范围
- 作用于 `websocket_service/` 目录及其子目录。
- 本服务是实时通知链路关键节点,改动需谨慎。
## 2) 服务职责
- 通过 STOMP 维护客户端实时连接(`/api/ws``/api/sockjs`)。
- 从 RabbitMQ 队列消费通知并转发至用户/会话目的地。
- 在连接阶段执行 JWT 鉴权。
## 3) 关键一致性规则
- JWT 密钥与后端保持一致(同一 `JWT_SECRET` 语义)。
- 队列配置与后端分片策略同步:
- 后端声明:`backend/.../RabbitMQConfig.java`
- 后端分片:`backend/.../ShardingStrategy.java`
- 本服务监听:`src/main/java/com/openisle/websocket/listener/NotificationListener.java`
- 监听队列当前约定16 个十六进制分片队列 + 遗留 `notifications-queue`
## 4) 修改规则
- 不随意变更 STOMP 目的地命名(`/topic/...``/user/...`)。
- 若必须调整目的地,需同步前端 `frontend_nuxt/composables/useWebSocket.js` 与相关消费代码。
- `WebSocketAuthInterceptor` 中 CONNECT 鉴权失败策略(拒绝连接)应保持清晰一致。
- Allowed origins 改动需考虑本地、预发、正式环境域名。
## 5) 配置与可观测性
- 配置入口:`src/main/resources/application.properties`
- 健康检查:`/actuator/health`(部署与 compose 依赖该路径)
- 日志级别改动需避免在生产产生高噪声。
## 6) 验证建议
- 首选:`mvn test`
- 若暂无测试覆盖:`mvn -DskipTests compile`
- 变更消息推送逻辑时,至少完成一次端到端验证:
- 生产者发送消息
- RabbitMQ 消费成功
- 客户端收到对应目的地消息
## 7) 输出要求
- 说明是否影响队列名、路由键、目的地或鉴权逻辑。
- 说明是否需要前端/后端同步改动。