一、Websocket简介
Websocket是一种消息推送技术,支持全双工通信,是HTTP协议的一种补充。相对于HTTP这种非持久的协议来说,是一个持久化的协议。与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。而HTTP请求可能需要在每个请求都携带状态信息(如身份认证等)。在此之前也有一些推送技术,如ajax的轮询或comet的双向轮询,即每隔一段时间向服务器发送一次请求,获取数据。轮询的方式在给服务端带来了大量请求压力的同时,客户端也无法保证得到数据的实时性。在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
二、Websocket原理
-
轮询请求-响应模式
-
Websocket请求-响应模式
三、Websocket的简单使用
- 引入依赖
<!--websocket-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<!--<version>2.0.4.RELEASE</version>-->
</dependency>
- 创建websocket服务
package com.example.websocketdemo.websocket;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.concurrent.<