/websocket-chat

这是一个基于Spring Boot和WebSocket实现的即时通讯应用,支持文本、视频和语音聊天功能。

Primary LanguageHTML

WebSocket 即时通讯应用

这是一个基于Spring Boot和WebSocket实现的即时通讯应用,支持文本、视频和语音聊天功能。

img.png

img_1.png

功能特点

  • 基于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+

构建和运行

  1. 克隆项目到本地
git clone <repository-url>
cd websocket-chat
  1. 使用Maven构建项目
mvn clean package
  1. 运行应用
java -jar target/websocket-chat-0.0.1-SNAPSHOT.jar
  1. 访问应用

打开浏览器,访问 http://localhost:8080

使用说明

  1. 在首页输入用户名并登录
  2. 进入聊天室后,默认进入公共聊天区域
  3. 左侧边栏显示在线用户列表
  4. 点击用户名可以进行私聊
  5. 在私聊模式下,可以使用视频通话或语音通话功能

项目结构

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)提高可扩展性
  • 添加端到端加密
  • 实现屏幕共享功能