背景:需要一个前端页面实时显示出后端监控数据,想到的方案有两种,一种是用轮询,一种是用websocket,考虑到是一个内部用的系统,ws客户端同时连接数不是特别高, 且数据量不是特别大,所以选择了基于springboot+websocket+echarts。
首先加入maven依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
主要使用@ServerEndpoint注解来实现websocket,配置ServerEndpointExporter,配置后会自动注册所有“@ServerEndpoint”注解声明的Websocket Endpoint
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}