功能实现:在得到新数据后以最快的速度推送到前台。(springboot框架)
0.修改pom文件 加入需要的jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!-- 处理数据用 跟推送无关 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
1.新建config配置文件(注意目录问题,最好是根目录下)
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
* @Description: socket配置类,往 spring 容器中注入ServerEndpointExporter实例
*/
@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter(){
return new ServerEndpointExporter();
}
}
2.新建websocket服务类
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import org.springframework.stereotype.Component;
/**
* @Description: WebSocket服务端代码,包含接收消息,推送消息等接口
* userName是接收的参数
*/
@Component
@ServerEndpoint(value = "/ws/{userName}")
public class WebSocketServer {
static Map<Session, String> map = new HashMap<Session, String>(); //存储系统的用户信息
/**
* @param session
*/
@OnOpen
public void OnOpen(@PathParam("userName")String userName,Session session) {
System.out