原文地址:https://mp.csdn.net/postedit

概述

Spring Boot

Spring Boot:是为了简化使用 Spring 开发的应用产生的,它使用“习惯由于配置”的理念使项目快速运行起来。使用 Spring Boot 你可以不用或者只需要很少的 Spring 配置,你可以仅仅使用一个 java -jar 命令就运行起一个 java 项目。

优点

快速构建项目。

开箱即用,提供各种默认配置来简化项目配置。

项目可以独立运行,无须外部依赖 Servlet 容器。

对主流框架的无配置集成。

提供各种 starter 简化 Maven 配置。

WebSocket

WebSocket:是 HTML5 开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。 WebSocket 通信协议于2011年被IETF定为标准RFC 6455,WebSocketAPI 被W3C定为标准。 在WebSocket API 中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

特点

为浏览器和服务端提供了双工异步通信的功能,即服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

建立在 TCP 协议之上,服务器端的实现比较容易。

与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

数据格式比较轻量,性能开销小,通信高效。

可以发送文本,也可以发送二进制数据。

没有同源限制,客户端可以与任意服务器通信。

协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

STOMP

STOMP:即Simple (or Streaming) Text Orientated Messaging Protocol,它是一个简单的文本消息传输协议,属于 WebSocket 的子协议,提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议由于设计简单,易于开发客户端,因此在多种语言和多种平台上得到广泛地应用。

优点

使用 WebSocket 需要增加浏览器的兼容支持,如 IE 10+、Chrome 13+、Firefox 6+,而 STOMP 是一个更高级的协议,它使用一个基于帧(frame)的格式来定义消息,与 HTTP 的 request 和 response 类似。

项目构建

添加 WebSocket 和 Thymeleaf 依赖

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

新建 websocket 配置类

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

通过 @EnableWebSocketMessageBroker 注解来开启使用 STOMP 协议来传输基于代理(message broker)的消息。

通过复写父类的 registerStompEndpoints 方法,注册 STOMP 协议的节点来映射指定的 URL 并指定使用 SocketJS 协议。

通过复写父类的 configureMessageBroker 方法,来配置一个广播式消息代理。

新建浏览器像服务端发送消息封装类 ClientRequestMessage

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

新建服务端像浏览器端发送消息封装类 ServerResponseMessage

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

新建请求控制器 WsController

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

通过 @MessageMapping 注解接收浏览器端发送的消息。

通过 @SendTo 注解像浏览器端广播消息。

构建浏览器端

需要下载 stomp.js、sockjs.min.js、jquery.js 几个脚本支持。将几个文件放在 src/main/resources/static 下。

演示页面 ws.html 放在 src/main/resources/templates 下

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

新建 WebMvcConfig 类

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

运行效果

收藏贴Spring Boot 集成 WebSocket 基于 STOMP 实现消息实时通信

Java

以上所述是小编给大家介绍的Spring Boot 模块组成,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的!

相关文章: