1.简介
在我们平时写的web项目中,大多是使用http协议,但是http协议是典型的一问一答的模式,只能由客户端向服务器发送请求,再由服务器返回响应,但实际开发中,很多场景都需要服务器主动发送消息给服务端,这时就需要使用WebSocket协议。
WebSocket是基于TCP协议实现的应用层协议,它通过 HTTP 协议进行握手。客户端首先发送一个 HTTP 请求,请求中包含一些特殊的头部信息,表明这是一个 WebSocket 连接请求。服务器收到请求后,如果支持 WebSocket 协议,就会返回一个响应,完成握手过程。这个握手过程就像是双方在建立通信之前的一种 “打招呼” 和 “确认” 的方式。
2. 使用方式
我们先创建一个spring项目,勾选上websocket依赖:
2.1 创建WebSocket处理器
创建TextWebSocketHandler的子类:
重写其中的一些方法,这里我们主要介绍如下四种:
TextMessage用于存储文本,消息,getPayload()会返回消息内容
2.2 注册WebSocket处理器
实现WebSocketConfigurer接口,重写registerWebSocketHandlers()方法完成注册:
2.3 在前端页面中使用WebSocket连接服务器
2.4 运行展示
运行后端代码访问页面:
可以看到前后端都提示了连接成功,此时我们关闭服务器:
在前后端也可以看到连接关闭的提示,我们再次启动服务器发送消息:
可以看到,发送你好后,服务器同样给客户端也发送了你好