一对一
/**
* 获取实时数据
*/
connectStompSock() {
const self = this;
// 链接地址
let sockVertical = new window.SockJS(Global.getBaseUrl()+ '/ws/stomp'); //Global.getBaseUrl() -> xxxURl
// 清空stompSock
this.stompSock = null;
// 获取STOMP子协议的客户端对象
this.stompSock = window.Stomp.over(sockVertical);
// 随机
let _clientId = 'kcp' + new Date().getTime();
// 定义客户端的认证信息,按需求配置
let headers = {
'clientId': _clientId,
'code': localStorage.getItem('jczStationCodeId') || 'JCZ01',
'onDisconnectTopic': '/user',
'userId': Auth.getSyncUser() ? Auth.getSyncUser().id : '2c9481c36ba08a82016bb1ebb6970231'
};
// 定义一对一tipic
let tipicMathRandom = '/user/' + _clientId;
// 向服务器发起websocket连接
this.stompSock.connect(headers, () => {
//获取统计数据
self.stompSock.subscribe(tipicMathRandom + '/daily-statistics-today-sum-third-party', function (response) {
let res = JSON.parse(response.body);
self.onDutyProps = res;
});
//处置移交数据
self.stompSock.subscribe(tipicMathRandom + '/latest-disposes', function (response) {
let res = JSON.parse(response.body);
self.dispositionTurnProps = res;
});
//物品核查数据
self.stompSock.subscribe(tipicMathRandom + '/latest-item-disposes', function (response) {
let res = JSON.parse(response.body);
self.itemInspectProps = res;
});
}, (err) => {
console.log(err, 'sock err 重新链接');
self.rememberNum++;
if (self.rememberNum > 9) return;
self.stompSock.disconnect();
setTimeout(() => {
self.connectStompSock();
}, 300);
});
// 拦截输出的一大堆垃圾信息
self.stompSock.debug = (message) => {
// console.log('stompSock拦截输出的message', message);
};
},
一对多
/**
* 获取实时数据
*/
connect() {
const self = this;
let sockVertical = new window.SockJS(Global.getBaseUrl() + '/ws/stomp');
this.stompClient = null;
this.stompClient = window.Stomp.over(sockVertical);
this.stompClient.connect({
'clientId': JSON.stringify({
userId: 'dl' + new Date().getTime()
}),
'onDisconnectTopic': '/user'
}, function (frame) {
self.stompClient.subscribe('/data-converge-total', function (response) {
self.dataInfoProps[0].value = response.body;
});
self.stompClient.subscribe('/data-share-flow-total', function (response) {
self.dataInfoProps[1].value = response.body;
});
//数据汇聚比例
self.stompClient.subscribe('/data-converge-type-ratio', function (response) {
let res = JSON.parse(response.body);
self.searchTypeRatio = res;
});
//数据分享比例
self.stompClient.subscribe('/data-share-type-ratio', function (response) {
let res = JSON.parse(response.body);
self.searchShareTypeRatio = res;
});
//数据增量
self.stompClient.subscribe('/data-converge-incr', function (response) {
let res = JSON.parse(response.body);
if(self.dataStatus.incrStatus === 1){
self.incrementInfo = self.incrInfo(1, res);
}
});
//数据汇聚来源
self.stompClient.subscribe('/data-converge-source', function (response) {
if(self.dataStatus.sourceStatus === 1){
let res = JSON.parse(response.body);
self.convergeSource = [];
self.convergeSource = res;
}
});
//流向趋势
self.stompClient.subscribe('/data-flow-trend', function (response) {
if(self.dataStatus.trendStatus === 1){
let res = JSON.parse(response.body);
self.flowTrendProps = [];
self.flowTrendProps = res;
}
});
//数据流向
self.stompClient.subscribe('/data-share-flow-statistics', function (response) {
const colorArr = ['#FAD337', '#268BFF', '#1DBEF3', '#36CBCB', '#25CF5F', '#B0D714', '#F27A31', '#8328F0', '#FF5C77', '#FF5C77', '#FF5C77'];
let res = JSON.parse(response.body);
res.forEach((item, index) => {
item.color = colorArr[index];
item.ratio = (parseFloat(item.ratio)) / 100;//转换小数
});
self.waterFlow = res;
});
//中间数据流
self.stompClient.subscribe('/data-flow-message', function (response) {
let res = JSON.parse(response.body);
self.flowMessageProps = [];
self.flowMessageIllegal = [];
self.flowMessageProps = res;
//获取不重复违法类型
let targetImport = res.filter((el, i) => {
if(el.data && el.type === 1){
return el;
}
});
self.flowMessageIllegal = self.getSourceIllegal(targetImport);
});
}, function (e) {
console.log(e, 'sock err 重新链接');
self.rememberNum++;
if (self.rememberNum > 9) return;
self.stompClient.disconnect();
setTimeout(() => {
self.connect();
}, 300);
});
self.stompClient.debug = (message) => {};
},
网友评论