Files
happy-life-star/配置核查总结.md
T
peanut 847f5126cf 修复WebSocket身份认证问题
- 添加WebSocketAuthInterceptor处理token认证
- 修改WebSocket连接逻辑,支持token传递
- 统一用户身份识别,确保登录用户使用USER类型
- 修复前端环境变量配置,统一WebSocket URL
- 添加Token测试页面用于验证功能
- 更新聊天消息处理逻辑,正确识别用户身份

解决了登录用户发送消息时同时保存GUEST和USER两种类型数据的问题
2025-07-24 17:51:38 +08:00

4.1 KiB

端口配置核查总结

概述

已完成对所有环境的端口配置核查和统一修改,确保前后端配置一致性。

后端配置 (backend-single)

端口统一为: 19089

1. 本地开发环境 (application-local.yml)

server:
  port: 19089
  • 已确认配置正确
  • 数据库: 47.111.10.27:3306/emotion
  • Redis: localhost:6379

2. 生产环境 (application-prod.yml)

server:
  port: 19089
  • 已确认配置正确
  • 数据库: 47.111.10.27:3306/emotion
  • Redis: localhost:6379

3. 测试环境 (application-test.yml)

server:
  port: 19089
  • 新创建配置文件
  • 数据库: 47.111.10.27:3306/emotion
  • Redis: localhost:6379 (database: 1)

前端配置 (web-flowith)

API和WebSocket端点统一

1. 开发环境 (.env.development)

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)

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)

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)

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用户

部署说明

本地开发

# 后端
cd backend-single
mvn spring-boot:run -Dspring-boot.run.profiles=local

# 前端
cd web-flowith
npm run dev

测试环境

# 后端
java -jar emotion-single.jar --spring.profiles.active=test

# 前端
npm run build:test

生产环境

# 后端
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. 环境变量: 确认前端构建时使用正确的环境配置

调试命令

# 检查端口占用
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