diff options
Diffstat (limited to 'src/api/socket.js')
| -rw-r--r-- | src/api/socket.js | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/src/api/socket.js b/src/api/socket.js new file mode 100644 index 0000000..eb0f1d5 --- /dev/null +++ b/src/api/socket.js @@ -0,0 +1,174 @@ +// import store from '../store' +// import router from '../router' +// import {Message} from "element-ui"; +// var websock = null +// var globalCallback = null; +// var interval = null; //定时器 +// var isOver80 = false; //硬盘使用率是否超过80%% +// var isOver = false; //用户启动检测,如果硬盘使用率超过80%自动停止,并弹窗提示用户为何停止 +// +// //初始化websocket +// function initWebSocket() { +// const userId = sessionStorage.getItem('userId') +// console.log("%%%%%%%%%%%%%################^^^^^^^^^^^^^") +// console.log(userId) +// console.log("%%%%%%%%%%%%%################^^^^^^^^^^^^^") +// +// var ws = 'ws://' + window.g.baseURL + '/websocket/' + 'admin'; +// +// websock = new WebSocket(ws) +// websock.onmessage = function(e) { +// websocketonmessage(e) +// } +// websock.onclose = function(e) { +// websocketclose(e); +// } +// websock.onopen = function() { +// websocketOpen() +// } +// // 连接发生错误的回调方法 +// websock.onerror = function() { +// console.log('链接失败--重新链接'); +// initWebSocket() +// } +// //发送心跳包 +// interval = window.setInterval(function() { +// if (websock != null) { +// let heart = { +// "heart": "HeartBeat" +// } +// websock.send(JSON.stringify(heart)); +// console.log("发送心跳包:HeartBeat"); +// } +// }, 1800000); +// // }, 180); +// } +// +// // 实际调用的方法 +// function sendSock(agentData, callback) { +// globalCallback = callback +// if (websock.readyState === websock.OPEN) { +// // 若是ws开启状态 +// websocketsend(agentData) +// } else if (websock.readyState === websock.CONNECTING) { +// // 若是 正在开启状态,则等待1s后重新调用 +// setTimeout(function() { +// sendSock(agentData, callback) +// }, 1000) +// } else { +// // 若未开启 ,则等待1s后重新调用 +// setTimeout(function() { +// sendSock(agentData, callback) +// }, 1000) +// } +// } +// //实际调用--用户退出登录时----手动关闭ws连接 +// function closews() { +// websock.close(); +// } +// //实际调用--用户登录成功(login.vue)或刷新页面(app.vue)时--启动ws重新连接//用户刷新页面但是未登录不做处理 +// function linkws() { +// initWebSocket() +// console.log('登录成功--开始连接.......') +// } +// +// // 数据接收 ---------将所需数据存到store里面 +// function websocketonmessage(e) { +// var data = JSON.parse(e.data) +// // console.log(data) +// if (data.msg_type == "stat") { //实时数据图标展示 +// var yingpan = data.fs_used / (data.fs_used + data.fs_free); +// var neicun = data.mem_used / data.mem_total; +// var msg = { +// // "flow":(data.ring_recv_bytes*8/1024/1024).toFixed(2), +// "flow": (data.recv_bytes * 8 / 1024 / 1024).toFixed(2), +// "meek": data.new_conns.TOR_MEEK, +// "tor": data.new_conns.TOR_DIRECT, +// "lwhttp": data.new_conns.ZERONET_TRACKER, +// "lwssl": data.new_conns.ZERONET_SSL, +// "tor2web": data.new_conns.TOR2WEB, +// "tempmail": data.new_conns.TEMPMAIL, +// "cpu": (100 - data.cpu_idl).toFixed(2), //cpu使用率 +// "mem": (neicun * 100).toFixed(2), //内存使用率 +// "fs": (yingpan * 100).toFixed(2), //硬盘使用率 +// } +// store.commit("timedatafn", msg) //存储实时数据 +// if ((yingpan * 100).toFixed(2) > 80) { //硬盘使用率超过80%自动提示 +// if (isOver80 == false) { +// Message.warning('警告:硬盘使用率已超过80%!'); +// isOver80 = true +// } +// } else { +// isOver80 = false; +// } +// }; +// if (data.info == 'disk quota exceeded' && data.msg_type == "task_done") { +// if (isOver == false) { +// Message.warning('警告:硬盘使用率已超过80%!'); +// isOver = true +// } +// } else { +// isOver = false; +// } +// if (data.msg_type == "task_done" && data.result == "success") { //流量导入结果回传 +// var msg = { +// "action": data.action, +// "info": data.info, +// "result": data.result +// }; +// store.commit("flowbackfn", msg) //存储实时数据 +// }; +// if (data.info == 'License invalid' && data.msg_type == "task_done") { //License失效--跳到license认证页面 +// Message.error('License失效,请重新认证!'); +// store.commit("isAuthorize", true); +// router.push('/authmessage') +// } +// +// //实时检测是否停止 lightnet_mode-->0在线 1离线 lightnet_heartbeat 0停止 >0启动 +// if (data.lightnet_heartbeat == 0) { +// store.commit("isCheckfn", false) // 当前用户关闭了实时数据检测 +// } else if (data.lightnet_heartbeat > 0) { +// store.commit("isCheckfn", true) // 当前用户开启了实时数据检测 +// } +// if (data.type == "loginOut") { //用户二次登陆踢掉第一次登陆 并清空数据 +// if (data.token == sessionStorage.getItem('token')) { +// router.push('/login') +// sessionStorage.setItem('isLogin', false) +// sessionStorage.setItem('sessionId', '') +// sessionStorage.setItem('token', '') +// sessionStorage.setItem('userId', '') +// } +// } +// +// // 铃声提示 +// if (data.new_meek_conns > 0) { +// store.commit("newMeekfn", new Date().getTime()) +// } +// } +// +// // 数据发送 +// function websocketsend(agentData) { +// websock.send(JSON.stringify(agentData)) +// } +// +// // 关闭 +// function websocketclose(e) { +// console.log('连接关闭'); +// if (interval) { //关闭连接请求定时器 +// window.clearInterval(interval); +// console.log("清除定时器"); +// } +// } +// // 创建 websocket 连接 +// function websocketOpen(e) { +// console.log('连接成功') +// } +// +// //initWebSocket() 登录和页面刷新重新连接 +// +// // 将方法暴露出去 +// export { +// sendSock, //发送数据 +// closews, //退出登录--手动关闭链接 +// linkws, //登录成功--建立ws连接 +// } |
