一、需求
- 股价展示页面实时的获取股价更新
- 赛事的文字直播 实时更新赛况
-
二、服务端推送常用技术
全双工通信 webSocket
服务端主动推送SSE (server and event )直接建立在http协议上 长连接
三、双工通信webSocket
兼容HTTPS协议
- WebSocket的ws协议是基于HTTP
- WebSocket的wss协议是基于HTTPS
- 全双工数据交互
- onopen
- onmessage

群发
加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>
实现websocketConfig
@Configurationpublic class WebSocketConfig {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}}
实现MyWebSocket
- 需要添加的注解
- @ ServerEndpoint(value=”/websocket”)
- @Compenent
变量声明
/*** 静态变量,用来记录当前在线的连接数*/private static int onlineCount = 0;/*** concurrent包中的线程安全的Set,用来存放每个客户端MyWebSocket对象*/private static CopyOnWriteArraySet<MyWebSocket> myWebSockets = new CopyOnWriteArraySet<>();/*** 与某个客户端的连接会话*/private Session session;
实现方法
- 建立连接
- 连接关闭
- 封装基础的发送消息的操作
- 发送消息【添加@OnMessage注解】
- 群发消息
- 出现错误【添加@OnError注解】
- 建立连接
- 需要添加的注解
- 前端长时间和后台保持通讯的三种方式:ajax的setInterval、webSocket、SSE
- ajax长时间和服务端保持通讯太占内存
- websocket可以进行服务器和前端双向通讯
- SSE只能进行服务器往前端单向传送数据






