Socket io implementation

This commit is contained in:
DomySh
2022-07-08 15:13:46 +02:00
parent a7f23ee194
commit 8cd1b69752
11 changed files with 189 additions and 26 deletions

View File

@@ -5,9 +5,12 @@ import { ImCross } from 'react-icons/im';
import { Navigate, Outlet, Route, Routes } from 'react-router-dom';
import MainLayout from './components/MainLayout';
import { PasswordSend, ServerStatusResponse } from './js/models';
import { fireUpdateRequest, getstatus, login, setpassword } from './js/utils';
import { errorNotify, fireUpdateRequest, getstatus, login, setpassword } from './js/utils';
import HomePage from './pages/HomePage';
import ServiceDetails from './pages/ServiceDetails';
import io from 'socket.io-client';
const socket = io({transports: ["websocket", "polling"], path:"/sock" });
function App() {
@@ -29,11 +32,19 @@ function App() {
})
}
useEffect(getStatus,[])
useEffect(()=>{
const updater = setInterval(fireUpdateRequest,2000)
return () => clearInterval(updater)
getStatus()
socket.on("update", () => {
fireUpdateRequest()
})
socket.on("connect_error", (err) => {
errorNotify("Socket.Io connection failed! ",`Error message: [${err.message}]`)
getStatus()
});
return () => {
socket.off("update")
socket.off("connect_error")
}
},[])
const form = useForm({