大家来看松哥之前制作的一张图,这里详细解释了 websocket 协议升级的过程:
1.2 WebSocket 协议
OK,了解了 HTTP/1.1 协议的升级特性之后,我们再来详细看看整个过程是怎么样的?
一个 WebSocket 请求首先使用非正常的 HTTP 请求以特定的模式访问一个 URL ,这个 URL 有两种模式,分别是 ws 和 wss,对应 HTTP 协议中的 http 和 https,请求头中除了 Connection:Upgrade 之外还有一个 Upgrade:websocket ,它们两个将共同告诉服务器将连接升级为 WebSocket 这样一种全双工协议。
如此,在握手完成之后,文本消息或者其他二进制消息就可以同时在两个方向上进行发送,而不需要关闭和重建连接。此时的客户端和服务端关系其实是对等的,他们都可以互相向对方主动发消息。
注意
ws 和 wss 模式并不能算作 HTTP 协议的一部分,因为 HTTP 请求和请求头并不包含 URL 模式,HTTP 请求只在请求的第一行中包含相对于服务器的 URL ,在 Host 头中包含域名,而 WebSocket 中特有的 ws 和 wss 模式主要用于通知浏览器和 API 是希望使用 SSL/TLS(wss),还是希望使用不加密的方式(ws)进行连接。
1.3 WebSocket 的优势
说了这么多,那么接下来我们来看看 WebSocket 协议都有哪些优势:
-
由于 WebSocket 连接在端口80(ws)或者443(wss)上创建,与 HTTP 使用的端口相同,这样,基本上所有的防火墙都不会阻塞 WebSocket 连接
-
WebSocket 使用 HTTP 协议进行握手,因此它可以自然而然的集成到网络浏览器和 HTTP 服务器中
-
使用该协议,当消息启动或者到达的时候,服务端和客户端都可以知道
…
等等,还有很多。
1.4 WebSocket 的用途
凡是涉及到即时通讯的,基本上都能用上它:
-
网页上的在线聊天
-
多人在线游戏
-
在线股票网站
-
在线即时新闻网站
-
高清视频流
-
应用集群之间的通信
-
远程系统/软件的状态和性能的实时监控
2. 实战
介绍完基础知识之后,接下来我们就通过一个简单的例子来看看如何在 Spring Boot 中结合 WebSocket 实现在线点对点聊天。
真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】
废话不多说,看视频(本视频节选自松哥自制的 Spring Boot2 系列视频教程,本集基于 Spring Boot2.1.7 录制)。
3. 结语
学习分享,共勉
题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心
.7 录制)。
3. 结语
学习分享,共勉
题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心