1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import Stomp from "stompjs";
- import store from '@store/index';
- var projectconfig = `ws://${window.__MODE__.websocketUrl}`;
- // ============================一般使用的变量============================
- let number = 0;
- export const datainit = initialize;
- export const webtest = test;
- // ============================ 大函数体 ============================
- function initialize (topic, adpClient) {
- if (adpClient != null) {
- adpClient.disconnect();
- }
- var url = projectconfig;
- // let socket = new SockJS(url); // 这个地址要找你们后端
- // adpClient = Stomp.over(socket);
- adpClient = Stomp.client(url);
- adpClient.debug = null;
- adpClient.connect({ topic: topic, authToken: localStorage.getItem('authToken') }, adpClient2 => connectCallBackSubscribe(adpClient, topic), error => reconnect(error, adpClient, topic));
- return adpClient;
- }
- // 断线重连
- function reconnect (error, adpClient, topic) {
- //连接失败时再次调用函数
- number++;
- adpClient.connected = false;
- clearTimeout(setTimeout(initialize(topic), 1000 * 60 * 5));
- debugX("DataAdapter reconnect:" + number + " 次");
- return;
- }
- // ============================ 订阅函数体 ============================
- function connectCallBackSubscribe (adpClient, topic) {
- number = 0;
- adpClient.connected = true;
- adpClient.subscribe(topic, stompMessage => reflexWindturbineBasicInformation(stompMessage));
- }
- // ============================ 解析函数体 ============================
- function reflexWindturbineBasicInformation (stompMessage) {
- var newdata = JSON.parse(stompMessage.body);
- store.dispatch('getupdate', newdata);
- // console.log("newdata", newdata)
- }
- // ============================ 其他 ============================
- function debugX (text) {
- console.log("text", text);
- }
- function test () {
- clearTimeout(setTimeout(initialize('/topic/detial/param_MG01_02'), 1000 * 60 * 2));
- }
|