Browse Source

Implementing socket refresh every 10min

master
GabrielTrettel 3 years ago
parent
commit
37d67686e1
  1. 12
      src/app/hooks/useFiltering.js
  2. 19
      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`

19
src/app/hooks/useSocketMarkers.js

@ -158,6 +158,8 @@ function verifyResponse(response, name) {
function getFormsAnswers(socketObject, dispatch) { function getFormsAnswers(socketObject, dispatch) {
const [socketResponse, setSocketResponse] = useState(); const [socketResponse, setSocketResponse] = useState();
const openListeners = () => {
console.log(`rodando forms answ ${socketObject.name}`);
socketObject.socketUrl.onerror = (e) => { socketObject.socketUrl.onerror = (e) => {
console.log(e.message); console.log(e.message);
}; };
@ -165,6 +167,23 @@ function getFormsAnswers(socketObject, dispatch) {
socketObject.socketUrl.onmessage = ({ data }) => { socketObject.socketUrl.onmessage = ({ data }) => {
setSocketResponse(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)});

Loading…
Cancel
Save