You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.2 KiB
71 lines
2.2 KiB
import { useEffect, useState } from "react";
|
|
import { useFiltering } from "../../hooks/useFiltering";
|
|
|
|
function createSocketObject(data, validos, response) {
|
|
//console.log("criando valuidos");
|
|
var socketObject = {
|
|
name: data.name,
|
|
socket: response,
|
|
};
|
|
validos.push(socketObject);
|
|
// console.log(validos);
|
|
}
|
|
|
|
function isRequestedValue(item, renderOptions) {
|
|
if (
|
|
(item.name == "pluviometer" && renderOptions.citzen.pluviometer) ||
|
|
(item.name == "automaticPluviometer" &&
|
|
renderOptions.oficial.automaticPluviometer) ||
|
|
(item.name == "rain" && renderOptions.citzen.rain) ||
|
|
(item.name == "riverFlood" && renderOptions.citzen.riverFlood) ||
|
|
(item.name == "floodZones" && renderOptions.citzen.floodRisk) ||
|
|
(item.name == "susceptibilityAreas" &&
|
|
renderOptions.oficial.susceptibilityAreas)
|
|
) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function verify_existingSockets(formType, renderOptions, validos) {
|
|
if (formType.response == null && isRequestedValue(formType, renderOptions)) {
|
|
//console.log("Criou socket: " + formType.name);
|
|
const socket = new WebSocket(
|
|
"wss://waterproofing.geog.uni-heidelberg.de/wss/hot/data?" +
|
|
formType.endpoint
|
|
);
|
|
formType.socketUrl = socket;
|
|
createSocketObject(formType, validos, socket);
|
|
return socket;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export default function SocketClient(dataOptionObject, focusChanged) {
|
|
const [data, setData] = useState(useFiltering().forms);
|
|
var validos = [];
|
|
const socket = verify_existingSockets(data[1], dataOptionObject, validos);
|
|
const [dados, setDado] = useState();
|
|
|
|
|
|
useEffect(() => {
|
|
console.log(dados);
|
|
// data.map((e) => verify_existingSockets(e, dataOptionObject, validos));
|
|
if (socket && dados != 'undefined') {
|
|
console.log("ESTÁ PASSANDO AQUI!!");
|
|
data[1].socketUrl.onmessage = ({ data }) => {
|
|
// data[1].response = data
|
|
setDado(data);
|
|
// console.log("pegou espostas");
|
|
};
|
|
} else {
|
|
setDado(null);
|
|
}
|
|
|
|
//console.log(dados);
|
|
}, [dataOptionObject, focusChanged]);
|
|
return dados;
|
|
//
|
|
//console.log("data socket client: "+ JSON.stringify(data));
|
|
// return data.response;
|
|
}
|