WebSocket协议是HTML5开始提供的一种建立在单个 TCP连接基础上的全双工通信的协议。
所以想使用WebSocket协议,那么所用的浏览器要支持HTML5
实质上浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,
连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。
注意要区别于长链接、轮询、Comet技术,这些技术都是基于请求-应答模式,都不算是真正意义上的实时技术;它们的每一次请求、应答,都浪费了一定流量在相同的头部信息上,并且开发复杂度也较大。
关于WebSocket协议详情请看大神的文章:https://blog.csdn.net/sbsujjbcy/article/details/52839540
下面代码是使用实例
- 业务场景是 从MQ消费的数据,经过后端处理,然后将数据推送到页面
- 区别于传统的页面数据刷新,需要先从页面向后台发送请求,接收response后再展示数据的方式
服务器代码:
//定义webSocket服务端
@ServerEndpoint("/getRealTimeData")
@Service
public class PushDataService {
private static Logger logger = LoggerFactory.getLogger(PushDataService.class);
//关闭事件
@OnClose
public void onClose(Session session) {
getSocketSessinonService().removeSession(session);
}
// 接受客户端的参数,文本、二进制消息、pongmessage
@OnMessage
public void onMessage(String message, Session ses