spring boot websocket stomp 实现广播通信和一对一通信聊天
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:27
一、前言
玩.net的时候,在asp.net下有一个叫 SignalR 的框架,可以在ASP .NET的Web项目中实现实时通信。刚接触java寻找相关替代品,发现 java 体系中有一套基于stomp协议的websocket通信的框架,websocket是什么可以参考阮老大的《WebSocket 教程》,这篇文章不讨论理论知识,这里只讲应用,把websocket的广播模式与一对一模式一起整理一个demo给大家分享一下。
二、项目结构
因为一对一私聊模式 使用principal的name作为目的地标识。发给消息来源的那个用户,该操作是认为用户登录并且授权认证,所以这里使用Spring Security来控制身份认证,项目结构如下:

1.WebSecurityConfig: Spring Security安全控制类
2.WebSocketConfig: web socket 控制类
3. DefaultController:mvc控制器
4.ChatMessage: 消息实体对象
5.chat.html : 聊天消息发送接收html客户端页面
6.login.html:登录页
pom.xml依赖如下:
三、代码实现
1.web服务器安全配置
2.WebSocket 配置类
3.控制器
4.消息载体:pojo对象
5.客户端聊天html页面
三、测试:
1,分别在两个浏览器中打开,登录user1与user2

2,发消息测试

3.断开测试:断开后无论公共消息私有消息都无法再接收

六、参考文档
1.WebSocket 教程:http://www.ruanyifeng.com/blog/2017/05/websocket.html
2.玩转spring boot——websocket:https://www.cnblogs.com/GoodHelper/p/7078381.html
3.Spring Boot 开发私有即时通信系统(WebSocket):https://www.jianshu.com/p/0f498adb3820
相关文章
-
Spring Boot 配置文件加载位置及优先级
Spring Boot 配置文件加载位置及优先级
- 互联网
- 2026年04月04日
-
Spring boot 入门四:spring boot 整合mybatis 实现CRUD操作
Spring boot 入门四:spring boot 整合mybatis 实现CRUD操作
- 互联网
- 2026年04月04日
-
spring boot 使用redis 及redis工具类
spring boot 使用redis 及redis工具类
- 互联网
- 2026年04月04日
-
spring boot controller访问不到
spring boot controller访问不到
- 互联网
- 2026年04月04日
-
Spring Boot Admin 离线实例
Spring Boot Admin 离线实例
- 互联网
- 2026年04月04日
-
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
- 互联网
- 2026年04月04日






