修复WebSocket身份认证问题
- 添加WebSocketAuthInterceptor处理token认证 - 修改WebSocket连接逻辑,支持token传递 - 统一用户身份识别,确保登录用户使用USER类型 - 修复前端环境变量配置,统一WebSocket URL - 添加Token测试页面用于验证功能 - 更新聊天消息处理逻辑,正确识别用户身份 解决了登录用户发送消息时同时保存GUEST和USER两种类型数据的问题
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
# 端口配置核查总结
|
||||
|
||||
## 概述
|
||||
|
||||
已完成对所有环境的端口配置核查和统一修改,确保前后端配置一致性。
|
||||
|
||||
## 后端配置 (backend-single)
|
||||
|
||||
### 端口统一为: 19089
|
||||
|
||||
#### 1. 本地开发环境 (`application-local.yml`)
|
||||
```yaml
|
||||
server:
|
||||
port: 19089
|
||||
```
|
||||
- ✅ 已确认配置正确
|
||||
- 数据库: 47.111.10.27:3306/emotion
|
||||
- Redis: localhost:6379
|
||||
|
||||
#### 2. 生产环境 (`application-prod.yml`)
|
||||
```yaml
|
||||
server:
|
||||
port: 19089
|
||||
```
|
||||
- ✅ 已确认配置正确
|
||||
- 数据库: 47.111.10.27:3306/emotion
|
||||
- Redis: localhost:6379
|
||||
|
||||
#### 3. 测试环境 (`application-test.yml`)
|
||||
```yaml
|
||||
server:
|
||||
port: 19089
|
||||
```
|
||||
- ✅ 新创建配置文件
|
||||
- 数据库: 47.111.10.27:3306/emotion
|
||||
- Redis: localhost:6379 (database: 1)
|
||||
|
||||
## 前端配置 (web-flowith)
|
||||
|
||||
### API和WebSocket端点统一
|
||||
|
||||
#### 1. 开发环境 (`.env.development`)
|
||||
```env
|
||||
VITE_API_BASE_URL=http://localhost:19089/api
|
||||
VITE_UPLOAD_URL=http://localhost:19089/api/upload
|
||||
VITE_WS_URL=http://localhost:19089/ws/chat
|
||||
```
|
||||
- ✅ 已确认配置正确
|
||||
|
||||
#### 2. 生产环境 (`.env.production`)
|
||||
```env
|
||||
VITE_API_BASE_URL=http://47.111.10.27:19089/api
|
||||
VITE_UPLOAD_URL=http://47.111.10.27:19089/api/upload
|
||||
VITE_WS_URL=http://47.111.10.27:19089/ws/chat
|
||||
```
|
||||
- ✅ 已更新配置 (从19000改为19089)
|
||||
|
||||
#### 3. 测试环境 (`.env.test`)
|
||||
```env
|
||||
VITE_API_BASE_URL=http://47.111.10.27:19089/api
|
||||
VITE_UPLOAD_URL=http://47.111.10.27:19089/api/upload
|
||||
VITE_WS_URL=http://47.111.10.27:19089/ws/chat
|
||||
```
|
||||
- ✅ 新创建配置文件
|
||||
|
||||
## WebSocket服务默认配置
|
||||
|
||||
### 前端WebSocket服务 (`src/services/websocket.ts`)
|
||||
```typescript
|
||||
const wsUrl = import.meta.env.VITE_WS_URL || 'http://localhost:19089/ws/chat'
|
||||
```
|
||||
- ✅ 已更新默认URL (从8080改为19089)
|
||||
|
||||
## 配置验证清单
|
||||
|
||||
### ✅ 已完成项目
|
||||
1. **后端端口统一**: 所有环境都使用19089端口
|
||||
2. **前端API配置**: 所有环境都指向正确的后端端口
|
||||
3. **WebSocket配置**: 前端WebSocket URL与后端端点匹配
|
||||
4. **环境配置完整性**: 本地、测试、生产环境配置齐全
|
||||
5. **默认配置更新**: WebSocket服务默认URL已更新
|
||||
|
||||
### 🔧 配置详情
|
||||
|
||||
#### WebSocket端点路径
|
||||
- 后端端点: `/ws/chat`
|
||||
- 前端连接: `http://host:19089/ws/chat`
|
||||
- 支持SockJS和原生WebSocket
|
||||
|
||||
#### API路径前缀
|
||||
- 后端context-path: `/api`
|
||||
- 前端API调用: `http://host:19089/api/*`
|
||||
|
||||
#### 数据库配置
|
||||
- 主机: 47.111.10.27:3306
|
||||
- 数据库: emotion
|
||||
- 本地/测试: root用户
|
||||
- 生产: emotion用户
|
||||
|
||||
## 部署说明
|
||||
|
||||
### 本地开发
|
||||
```bash
|
||||
# 后端
|
||||
cd backend-single
|
||||
mvn spring-boot:run -Dspring-boot.run.profiles=local
|
||||
|
||||
# 前端
|
||||
cd web-flowith
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 测试环境
|
||||
```bash
|
||||
# 后端
|
||||
java -jar emotion-single.jar --spring.profiles.active=test
|
||||
|
||||
# 前端
|
||||
npm run build:test
|
||||
```
|
||||
|
||||
### 生产环境
|
||||
```bash
|
||||
# 后端
|
||||
java -jar emotion-single.jar --spring.profiles.active=prod
|
||||
|
||||
# 前端
|
||||
npm run build
|
||||
```
|
||||
|
||||
## 验证步骤
|
||||
|
||||
1. **后端启动验证**
|
||||
- 检查日志确认端口19089启动成功
|
||||
- 访问 `http://localhost:19089/api/health` 确认API可用
|
||||
|
||||
2. **WebSocket连接验证**
|
||||
- 前端聊天页面能正常连接WebSocket
|
||||
- 浏览器开发者工具Network标签页显示WebSocket连接成功
|
||||
|
||||
3. **跨环境验证**
|
||||
- 本地开发环境正常工作
|
||||
- 测试环境部署后功能正常
|
||||
- 生产环境部署后功能正常
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **防火墙配置**: 确保服务器19089端口对外开放
|
||||
2. **Nginx配置**: 如使用Nginx代理,需要配置WebSocket支持
|
||||
3. **SSL证书**: 生产环境建议使用HTTPS和WSS
|
||||
4. **监控配置**: 建议添加端口和服务监控
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 常见问题
|
||||
1. **端口被占用**: 使用 `lsof -i :19089` 检查端口占用
|
||||
2. **WebSocket连接失败**: 检查防火墙和代理配置
|
||||
3. **跨域问题**: 确认后端CORS配置正确
|
||||
4. **环境变量**: 确认前端构建时使用正确的环境配置
|
||||
|
||||
### 调试命令
|
||||
```bash
|
||||
# 检查端口占用
|
||||
lsof -i :19089
|
||||
|
||||
# 检查服务状态
|
||||
curl http://localhost:19089/api/health
|
||||
|
||||
# 检查WebSocket连接
|
||||
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: test" -H "Sec-WebSocket-Version: 13" http://localhost:19089/ws/chat
|
||||
```
|
||||
Reference in New Issue
Block a user