Browse Source

Implementing socket refresh every 10min

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

12
src/app/hooks/useFiltering.js

@ -11,6 +11,8 @@ function useFiltering(location) {
const filters = [
{
name: "floodZones",
url: endpoint +
`type=FLOODZONES_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket(
endpoint +
`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",
url: endpoint +
`type=RAIN_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket(
endpoint +
`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",
url: endpoint +
`type=RIVERFLOOD_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket(
endpoint +
`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",
url: endpoint +
`type=PLUVIOMETER_REGISTRATION&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`,
socketUrl: new WebSocket(
endpoint +
`type=PLUVIOMETER_REGISTRATION&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=50`
@ -39,6 +47,8 @@ function useFiltering(location) {
},
{
name: "susceptibilityAreas",
url: endpoint +
`type=FLOODZONES_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`,
socketUrl: new WebSocket(
endpoint +
`type=FLOODZONES_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`
@ -46,6 +56,8 @@ function useFiltering(location) {
},
{
name: "automaticPluviometer",
url: endpoint +
`type=PLUVIOMETERS_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`,
socketUrl: new WebSocket(
endpoint +
`type=PLUVIOMETERS_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=20`

25
src/app/hooks/useSocketMarkers.js

@ -121,9 +121,9 @@ function buildMarkerObject(response, name) {
var situation = null;
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 {
ID: r.formsanswersid,
@ -158,6 +158,8 @@ function verifyResponse(response, name) {
function getFormsAnswers(socketObject, dispatch) {
const [socketResponse, setSocketResponse] = useState();
const openListeners = () => {
console.log(`rodando forms answ ${socketObject.name}`);
socketObject.socketUrl.onerror = (e) => {
console.log(e.message);
};
@ -165,9 +167,26 @@ function getFormsAnswers(socketObject, dispatch) {
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(() => {
dispatch({ increment: verifyResponse(socketResponse, socketObject.name) });
dispatch({ increment: verifyResponse(socketResponse, socketObject.name)});
}, [socketResponse]);
}

Loading…
Cancel
Save