这是一个基于Spring Boot和WebSocket实现的即时通讯应用,支持文本、视频和语音聊天功能。
- 基于WebSocket的实时通信
- 文本聊天(群聊和私聊)
- 基于WebRTC的视频通话
- 基于WebRTC的语音通话
- 用户在线状态显示
- 响应式UI设计
- 后端:Spring Boot 2.7.5, Spring WebSocket
- 前端:HTML5, CSS3, JavaScript, Bootstrap 5
- 通信协议:WebSocket, STOMP, WebRTC
- 构建工具:Maven
- JDK 11+
- Maven 3.6+
- 克隆项目到本地
git clone <repository-url>
cd websocket-chat- 使用Maven构建项目
mvn clean package- 运行应用
java -jar target/websocket-chat-0.0.1-SNAPSHOT.jar- 访问应用
打开浏览器,访问 http://localhost:8080
- 在首页输入用户名并登录
- 进入聊天室后,默认进入公共聊天区域
- 左侧边栏显示在线用户列表
- 点击用户名可以进行私聊
- 在私聊模式下,可以使用视频通话或语音通话功能
src/main/java/com/example/websocketchat/
├── WebsocketChatApplication.java # 应用程序入口
├── config/
│ └── WebSocketConfig.java # WebSocket配置
├── controller/
│ ├── ChatController.java # 聊天消息控制器
│ └── WebController.java # Web页面控制器
├── listener/
│ └── WebSocketEventListener.java # WebSocket事件监听器
└── model/
└── ChatMessage.java # 消息模型
src/main/resources/
├── application.properties # 应用配置
└── templates/
├── index.html # 登录页面
└── chat.html # 聊天页面
- 视频和语音通话功能需要浏览器支持WebRTC
- 请确保允许浏览器访问摄像头和麦克风
- 本应用使用简单的内存消息代理,不适合生产环境
- 没有实现用户认证和消息持久化
- 添加用户认证和授权
- 实现消息持久化存储
- 添加文件传输功能
- 使用外部消息代理(如RabbitMQ)提高可扩展性
- 添加端到端加密
- 实现屏幕共享功能

