背景
项目中经常会用到消息推送功能,关于推送技术的实现,我们通常会联想到轮询、comet长连接技术,虽然这些技术能够实现,但是需要反复连接,对于服务资源消耗过大,随着技术的发展,HtML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。本文将介绍如何采用websocket实现消息推送。
WebSocket简介
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。浏览器和服务器仅需一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
协议原理
Websocket协议基于Http协议,针对Http协议进行了相关的改善,且Websocket协议也需要建立TCP连接来实现数据传输,具体实现如下图:
文章来源:https://www.toymoban.com/news/detail-404788.html
说明:文章来源地址https://www.toymoban.com/news/detail-404788.html
- 客户端发起http请求,经过3次握手后,建立起TCP连接;http请求里存放WebSocket支持的版本号等信息,如:Upgrade、Connection、WebSocket-Version等。
- 服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据
- 客户端收到连接成功的消息后,开始借助于TCP传输信道进行全双工通信.
WebSocket与HTTP协议的区别
- 相同点:都是一样基于TCP的,都是可靠性传输协议。都是应用层协议。
- 不同点:
- WebSocket是双向通信协议,可以双向发送或接受信息,而HTTP是单向协议
- WebSocket需要浏览器和服务器握手进行建立连接的,而http是浏览器发起向服务器的连接。
WebSocket特点
- 建立在TCP协议之上,服务器端的实现比较容易。
- 数据格式比较轻量,性能开销小,通信高效。
- 支持多种数据格式,可以发送文本、二进制数据。
- 客户端可以与任意服务器通信,无同源限制。<
到了这里,关于Spring Boot集成WebSocket实现消息推送的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!