Commit 8f7b0a9a by lixinming

no message

parent 09a96f1d
import { get } from "../../util/request";
//虚拟机上的数据
export async function getHardware() {
let url = "http://10.51.50.140:8080/api/static/PrivateCloudUsageStatics";
let result:any = await get(url, {}, {});
result = {
"content":[
{
"id":1,
"cpu":"3568 core",
"mem":"24430 GB",
"localDisk":"17707 GB",
"cloudDisk":"214368 GB",
"server":"100",
"network":"34",
"security":"4",
"rack":"16"
}
],
"pageable":{
"sort":{
"empty":true,
"sorted":false,
"unsorted":true
},
"offset":0,
"pageNumber":0,
"pageSize":20,
"paged":true,
"unpaged":false
},
"totalPages":1,
"totalElements":1,
"last":true,
"size":20,
"number":0,
"sort":{
"empty":true,
"sorted":false,
"unsorted":true
},
"numberOfElements":1,
"first":true,
"empty":false
};
console.log(result);
if (result.content && result.content[0]) {
let contentInfo = result.content[0];
let 计算云资源 = {
"cpu":"",
"内存":"",
"本地磁盘":"",
"云磁盘总量":""
};
let 使用率 = {
"cpu":"",
};
}
console.log();
}
//虚拟机上的数据
export async function getData() {
}
import * as WebSocket from "ws"
//连接锁
let lockReconnect = false;
//断线重连
async function reconnect() {
if(lockReconnect) return;
lockReconnect = true;
await sleep(5 * 1000);
createSocket();
}
async function sleep(ms) {
return new Promise((resolve, reject)=>{
setTimeout(async function () {
resolve(true);
}, ms);
})
}
let heartCount = 0;
//心跳
let heart = {
timeout:40*1000,//40秒一次心跳包
serverTimeout:5*1000,//心跳包超时时间
timeoutObj:null,
notRespontNum:3, //未响应次数阈值
serverTimeoutObj:null,
reconnectTimeout:5 * 1000, //重连延迟
start:(ws) => {
if (!heartCount) {
heartCount = 1;
console.log("i'm heartStart");
}
//消除延时器
heart.timeoutObj && clearTimeout(heart.timeoutObj);
heart.serverTimeoutObj && clearTimeout(heart.serverTimeoutObj);
//次数限制
let notRespontCount = heart.notRespontNum;
heart.timeoutObj = setTimeout( () => {
//发送心跳包
ws.send("i am heart");
//计算答复时间
heart.serverTimeoutObj = setTimeout( () => {
if ( notRespontCount > 0 ) notRespontCount --;
else ws.close();//超过未响应阈值 关闭连接
}, heart.serverTimeout);
}, heart.timeout)
},
reset: () => {//重置
clearTimeout(heart.serverTimeoutObj);
clearTimeout(heart.timeoutObj);
}
}
//ws客户端
async function createSocket() {
let path = "ws://10.51.50.136:8090/ws/v1";
let ws = new WebSocket(path, {perMessageDeflate: false});
ws.onclose = async (err) => {
console.log("连接关闭: ", err);
lockReconnect = false;
heartCount = 0;
//断线重连
reconnect();
}
ws.onmessage = (msg) => {
//接收数据
console.log(msg);
}
ws.onerror = (error) => {
ws.close(error.message);
}
ws.onopen = () => {
heart.start(ws);
}
}
//todo
export async function initWSData() {
// await createSocket();
console.log();
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment