前端WebSocket+SockJS+Stomp实现数据实时刷新

实时获取列表的每条数据的状态,每次请求接口显然浪费资源,所以采用了WebSocket+SockJS+Stomp来实现数据实时刷新。

直接上例子
html引入

   
   
 

js

//连接
$scope.connectImportLogs  = function() {
  var socket = new SockJS(WEBSOCKET_URL);   //websocket_url
  stompClient = Stomp.over(socket);
  stompClient.connect({}, function(frame) {
    stompClient.subscribe('/message/queue/notice', function(message){ //接口
      var importLogs = JSON.parse(message.body);  //获得的数据
    });
  });
 }
//发送
stompClient.send("/app/get_server", {},JSON.stringify({"session_id":sessionId}));
//

2.重连
在使用websocket过程中,可能会出现网络断开的情况,比如信号不好,或者网络临时性关闭,这时候websocket的连接已经断开,而浏览器不会执行websocket 的 onclose方法,我们无法知道是否断开连接,也就无法进行重连操作。

如果希望websocket连接一直保持,一般在close或者error上绑定重新连接方法。

stompClient.ws.onclose = function () {
     connect();
}
stompClient.ws.onerror = function () {
     connect();
}

你可能感兴趣的:(前端WebSocket+SockJS+Stomp实现数据实时刷新)