bug fixed

This commit is contained in:
Dmitry Borisenko
2021-12-10 14:44:00 +01:00
parent b53d8f8d67
commit f20e96d007

View File

@@ -133,12 +133,6 @@
let deviceList = []; let deviceList = [];
deviceList = [ deviceList = [
{
name: "Устройство 1",
id: "987654321",
ip: "192.168.88.230",
status: false,
},
{ {
name: "Устройство 2", name: "Устройство 2",
id: "987654321", id: "987654321",
@@ -154,12 +148,13 @@
function connectToAllDevices() { function connectToAllDevices() {
let ws = 0; let ws = 0;
deviceList.forEach((device) => { deviceList.forEach((device) => {
if (debug) console.log("[i]", device.name, ws, device.ip, device.id); if (debug) console.log("[i] list", device.name, ws, device.ip, device.id);
wsConnect(ws, device.ip);
wsEventAdd(ws);
device.ws = ws; device.ws = ws;
wsConnect(ws);
wsEventAdd(ws);
ws++; ws++;
}); });
deviceList = deviceList;
} }
function markDeviceStatus(ws, status) { function markDeviceStatus(ws, status) {
@@ -178,14 +173,29 @@
deviceList = deviceList; deviceList = deviceList;
} }
function wsConnect(ws, ip) { function wsConnect(ws) {
socket[ws] = new WebSocket("ws://" + ip + "/ws"); let ip = getIP(ws);
if (ip === "error") {
if (debug) console.log("[e]", "device list wrong");
} else {
socket[ws] = new WebSocket("ws://" + ip + "/ws");
}
}
function getIP(ws) {
let ret = "error";
deviceList.forEach((device) => {
if (ws === device.ws) {
ret = device.ip;
}
});
return ret;
} }
function wsEventAdd(ws) { function wsEventAdd(ws) {
if (socket[ws]) { if (socket[ws]) {
socket[ws].addEventListener("open", function (event) { socket[ws].addEventListener("open", function (event) {
if (debug) console.log("[i]", "ws connected", myip); if (debug) console.log("[i]", "ws connected", getIP(ws));
markDeviceStatus(ws, true); markDeviceStatus(ws, true);
//socket[ws].send("HELLO"); //socket[ws].send("HELLO");
}); });
@@ -198,15 +208,17 @@
} }
}); });
socket[ws].addEventListener("close", (event) => { socket[ws].addEventListener("close", (event) => {
if (debug) console.log("[e]", "ws close", myip); if (debug) console.log("[e]", "ws close", getIP(ws));
markDeviceStatus(ws, false); markDeviceStatus(ws, false);
wsConnect(ws); wsConnect(ws);
}); });
socket[ws].addEventListener("error", function (event) { socket[ws].addEventListener("error", function (event) {
if (debug) console.log("[e]", "ws error", myip); if (debug) console.log("[e]", "ws error", getIP(ws));
markDeviceStatus(ws, false); markDeviceStatus(ws, false);
wsConnect(ws); wsConnect(ws);
}); });
} else {
if (debug) console.log("[e]", "socket not exist");
} }
} }
@@ -218,16 +230,17 @@
function wsTestMsgTask() { function wsTestMsgTask() {
setTimeout(wsTestMsgTask, 10000); setTimeout(wsTestMsgTask, 10000);
wsSendMsg(0, "test"); deviceList.forEach((device) => {
wsSendMsg(device.ws, "test");
});
} }
function wsSendMsg(ws, msg) { function wsSendMsg(ws, msg) {
if (socket[ws] && socket[ws].readyState === 1) { if (socket[ws] && socket[ws].readyState === 1) {
socket[ws].send(msg); socket[ws].send(msg);
if (debug) console.log("[i]", "msg send success:", msg); if (debug) console.log("[i]", ws, "msg send success:", msg);
} else { } else {
if (debug) console.log("[i]", "msg not send, try reconnected...", msg); if (debug) console.log("[e]", ws, "msg not send", msg);
wsConnect(ws);
} }
} }
@@ -291,10 +304,8 @@
onMount(async () => { onMount(async () => {
console.log("[i]", "mounted"); console.log("[i]", "mounted");
connectToAllDevices(); connectToAllDevices();
//wsTestMsgTask(); wsTestMsgTask();
//wsEventAdd();
findNewPage(); findNewPage();
//deviceListExecution();
}); });
</script> </script>