websocket数据库数据变化实时推送前端

最近项目上有需要,先写了一个demo用于记录和研究websocket,代码有些是借鉴了其他前辈的代码,有些是自己的,还包括一些踩坑
主要用于需要后端想前端进行数据库变化时推送刷新页面通知。
WebSocketServlet
这个主要用于配置方法以及在方法内轮询线程查询数据库

import com.service.IdentifyRecordService;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.concurrent.CopyOnWriteArraySet;

//在相对路径中发布端点websocket
@ServerEndpoint("/websocket")
@Component
public class WebSocketServlet {
   

    MyThread thread1=new MyThread();

    Thread thread=new Thread(thread1);

    @Resource
    private IdentifyRecordService identifyRecordService;

    //用来存放每个客户端对应的MyWebSocket对象。
    private static CopyOnWriteArraySet<WebSocketServlet> webSocketSet = new CopyOnWriteArraySet<WebSocketServlet>();
    private  javax.websocket.Session session=null;

    /**
     * @ClassName: onOpen
     * @Description: 开启连接的操作
     */
    @OnOpen
    public void onOpen(Session session) throws IOException{
   
        this.session=session;
        webSocketSet.add(this);
        System.out.println(webSocketSet);
        //开启一个线程对数据库中的数据进行轮询
        thread.start();

    }

    /**
     * @ClassName: onClose
     * @Description: 连接关闭的操作
     */
    @OnClose
    public void onClose(){
   
        thread1.stopMe();
        webSocketSet.remove(this);
    

你可能感兴趣的:(websocket,前端,数据库,java,后端)