mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 23:12:34 +03:00
final
This commit is contained in:
@@ -131,8 +131,15 @@
|
||||
let socketConnected = false;
|
||||
let selectedDeviceData;
|
||||
let deviceList = [];
|
||||
let flag = true;
|
||||
|
||||
deviceList = [
|
||||
{
|
||||
name: "Устройство 1",
|
||||
id: "987654321",
|
||||
ip: "192.168.88.230",
|
||||
status: false,
|
||||
},
|
||||
{
|
||||
name: "Устройство 2",
|
||||
id: "987654321",
|
||||
@@ -148,7 +155,7 @@
|
||||
function connectToAllDevices() {
|
||||
let ws = 0;
|
||||
deviceList.forEach((device) => {
|
||||
if (debug) console.log("[i] list", device.name, ws, device.ip, device.id);
|
||||
//if (debug) console.log("[i]", device.name, ws, device.ip, device.id);
|
||||
device.ws = ws;
|
||||
wsConnect(ws);
|
||||
wsEventAdd(ws);
|
||||
@@ -163,9 +170,9 @@
|
||||
device.status = status;
|
||||
if (debug) {
|
||||
if (device.status) {
|
||||
console.log("[i]", device.name, device.ip, "dev status online");
|
||||
console.log("[i]", device.ip, "status online:");
|
||||
} else {
|
||||
console.log("[i]", device.name, device.ip, "dev status offline");
|
||||
console.log("[i]", device.ip, "status offline:");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -173,12 +180,23 @@
|
||||
deviceList = deviceList;
|
||||
}
|
||||
|
||||
function getDeviceStatus(ws) {
|
||||
let ret = false;
|
||||
deviceList.forEach((device) => {
|
||||
if (ws === device.ws) {
|
||||
ret = device.status;
|
||||
}
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
function wsConnect(ws) {
|
||||
let ip = getIP(ws);
|
||||
if (ip === "error") {
|
||||
if (debug) console.log("[e]", "device list wrong");
|
||||
} else {
|
||||
socket[ws] = new WebSocket("ws://" + ip + "/ws");
|
||||
if (debug) console.log("[i]", ip, "started connecting");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -195,7 +213,7 @@
|
||||
function wsEventAdd(ws) {
|
||||
if (socket[ws]) {
|
||||
socket[ws].addEventListener("open", function (event) {
|
||||
if (debug) console.log("[i]", "ws connected", getIP(ws));
|
||||
if (debug) console.log("[i]", getIP(ws), "completed connecting");
|
||||
markDeviceStatus(ws, true);
|
||||
//socket[ws].send("HELLO");
|
||||
});
|
||||
@@ -208,12 +226,12 @@
|
||||
}
|
||||
});
|
||||
socket[ws].addEventListener("close", (event) => {
|
||||
if (debug) console.log("[e]", "ws close", getIP(ws));
|
||||
if (debug) console.log("[e]", getIP(ws), "connection closed");
|
||||
markDeviceStatus(ws, false);
|
||||
wsConnect(ws);
|
||||
});
|
||||
socket[ws].addEventListener("error", function (event) {
|
||||
if (debug) console.log("[e]", "ws error", getIP(ws));
|
||||
if (debug) console.log("[e]", getIP(ws), "connection error");
|
||||
markDeviceStatus(ws, false);
|
||||
wsConnect(ws);
|
||||
});
|
||||
@@ -230,17 +248,25 @@
|
||||
|
||||
function wsTestMsgTask() {
|
||||
setTimeout(wsTestMsgTask, 10000);
|
||||
deviceList.forEach((device) => {
|
||||
wsSendMsg(device.ws, "test");
|
||||
});
|
||||
if (!flag) {
|
||||
deviceList.forEach((device) => {
|
||||
if (!getDeviceStatus(device.ws)) {
|
||||
wsConnect(device.ws);
|
||||
wsEventAdd(device.ws);
|
||||
} else {
|
||||
wsSendMsg(device.ws, "");
|
||||
}
|
||||
});
|
||||
}
|
||||
flag = false;
|
||||
}
|
||||
|
||||
function wsSendMsg(ws, msg) {
|
||||
if (socket[ws] && socket[ws].readyState === 1) {
|
||||
socket[ws].send(msg);
|
||||
if (debug) console.log("[i]", ws, "msg send success:", msg);
|
||||
if (debug) console.log("[i]", getIP(ws), "msg send success", msg);
|
||||
} else {
|
||||
if (debug) console.log("[e]", ws, "msg not send", msg);
|
||||
if (debug) console.log("[e]", getIP(ws), "msg not send", msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user