Browse Source

Implementing socket refresh every 10min

master
GabrielTrettel 3 years ago
parent
commit
37d67686e1
  1. 12
      src/app/hooks/useFiltering.js
  2. 37
      src/app/hooks/useSocketMarkers.js

12
src/app/hooks/useFiltering.js

@ -11,6 +11,8 @@ function useFiltering(location) {
const filters = [ const filters = [
{ {
name: "floodZones", name: "floodZones",
url: endpoint +
`type=FLOODZONES_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket( socketUrl: new WebSocket(
endpoint + endpoint +
`type=FLOODZONES_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50` `type=FLOODZONES_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`
@ -18,6 +20,8 @@ function useFiltering(location) {
}, },
{ {
name: "rain", name: "rain",
url: endpoint +
`type=RAIN_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket( socketUrl: new WebSocket(
endpoint + endpoint +
`type=RAIN_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50` `type=RAIN_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`
@ -25,6 +29,8 @@ function useFiltering(location) {
}, },
{ {
name: "riverFlood", name: "riverFlood",
url: endpoint +
`type=RIVERFLOOD_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket( socketUrl: new WebSocket(
endpoint + endpoint +
`type=RIVERFLOOD_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50` `type=RIVERFLOOD_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`
@ -32,6 +38,8 @@ function useFiltering(location) {
}, },
{ {
name: "pluviometer", name: "pluviometer",
url: endpoint +
`type=PLUVIOMETER_REGISTRATION&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket( socketUrl: new WebSocket(
endpoint + endpoint +
`type=PLUVIOMETER_REGISTRATION&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50` `type=PLUVIOMETER_REGISTRATION&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`
@ -39,6 +47,8 @@ function useFiltering(location) {
}, },
{ {
name: "susceptibilityAreas", name: "susceptibilityAreas",
url: endpoint +
`type=FLOODZONES_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`,
socketUrl: new WebSocket( socketUrl: new WebSocket(
endpoint + endpoint +
`type=FLOODZONES_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20` `type=FLOODZONES_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`
@ -46,6 +56,8 @@ function useFiltering(location) {
}, },
{ {
name: "automaticPluviometer", name: "automaticPluviometer",
url: endpoint +
`type=PLUVIOMETERS_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`,
socketUrl: new WebSocket( socketUrl: new WebSocket(
endpoint + endpoint +
`type=PLUVIOMETERS_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20` `type=PLUVIOMETERS_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`

37
src/app/hooks/useSocketMarkers.js

@ -115,15 +115,15 @@ function buildPolygonsObject(response, name) {
function buildMarkerObject(response, name) { function buildMarkerObject(response, name) {
const r = JSON.parse(response); const r = JSON.parse(response);
// console.log(r);
// console.log(r);
const resposta = r.formsanswersgeom; const resposta = r.formsanswersgeom;
const formsanswersgeom = JSON.parse(resposta).coordinates; const formsanswersgeom = JSON.parse(resposta).coordinates;
var situation = null; var situation = null;
if (r.array_to_json) { if (r.array_to_json) {
situation = r.array_to_json.find((field)=> field.fieldname == "situation");
situation = r.array_to_json.find((field) => field.fieldname == "situation");
} }
// console.log(situation.fieldsanswersvalue);
// console.log(situation.fieldsanswersvalue);
return { return {
ID: r.formsanswersid, ID: r.formsanswersid,
@ -158,16 +158,35 @@ function verifyResponse(response, name) {
function getFormsAnswers(socketObject, dispatch) { function getFormsAnswers(socketObject, dispatch) {
const [socketResponse, setSocketResponse] = useState(); const [socketResponse, setSocketResponse] = useState();
socketObject.socketUrl.onerror = (e) => {
console.log(e.message);
};
const openListeners = () => {
console.log(`rodando forms answ ${socketObject.name}`);
socketObject.socketUrl.onerror = (e) => {
console.log(e.message);
};
socketObject.socketUrl.onmessage = ({ data }) => {
setSocketResponse(data);
socketObject.socketUrl.onmessage = ({ data }) => {
setSocketResponse(data);
};
}; };
openListeners()
useEffect(() => {
const timer = setInterval(() => {
console.log(
"===== Runing interval " + socketObject.name + " ========"
);
socketObject.socketUrl.close();
socketObject.socketUrl = new WebSocket(socketObject.url);
openListeners();
}, 600000);
return () => clearTimeout(timer);
}, []);
useEffect(() => { useEffect(() => {
dispatch({ increment: verifyResponse(socketResponse, socketObject.name) });
dispatch({ increment: verifyResponse(socketResponse, socketObject.name)});
}, [socketResponse]); }, [socketResponse]);
} }

Loading…
Cancel
Save