基于SpringBoot+Vue和Websocket实现页面聊天效果,如下:
一、WebSocket 的主要特点
-
全双工通信:一旦 WebSocket 连接建立,客户端和服务器就可以随时相互发送消息,而不需要一方必须先发起请求。
-
较少的控制开销:数据帧格式相对简单,不像 HTTP 那样每次通信都需要携带首部信息,减少了传输的数据量。
-
连接持久化:与 HTTP 不同,WebSocket 连接是持久化的。一旦建立连接,除非浏览器或服务器主动关闭,否则连接将一直保持打开状态。
-
跨域通信支持:WebSocket 天然支持跨域通信,无需像 AJAX 那样处理复杂的跨域资源共享 (CORS) 策略。
二、工作流程
-
握手阶段:WebSocket 通过 HTTP 协议开始通信,客户端发送一个特殊的 HTTP 请求到服务器,请求升级协议到 WebSocket。
-
建立连接:如果服务器同意升级,则双方成功建立 WebSocket 连接,之后的通信不再使用 HTTP 协议。
-
数据传输:连接建立后,客户端和服务器可以通过这个连接互相发送消息。
-
关闭连接:任一方都可以关闭 WebSocket 连接。
三、应用场景
- 即时通讯:如聊天应用、在线客服等。
- 实时更新:股票价格、体育赛事比分等需要实时更新的应用。
- 多人游戏:支持多个用户同时参与的游戏。
- 协作工具:文档协同编辑、白板协作等。
四、后端实现
1、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<a