diff --git a/front/src/main.tsx b/front/src/main.tsx
index 44555dd..98e9abd 100644
--- a/front/src/main.tsx
+++ b/front/src/main.tsx
@@ -10,16 +10,21 @@ import Register from './pages/Register'
import CreateChannel from './pages/CreateChannel'
import ChannelsPage from './pages/ChannelsPage'
+const socket = new WebSocket("/api/ws");
+setInterval(() => {
+ socket.send("ping");
+}, 30 * 1000);
+
createRoot(document.getElementById('root')!).render(
- } />
- } />
- } />
+ } />
+ } />
+ } />
} />
} />
} />
- } />
+ } />
)
diff --git a/front/src/pages/ChannelPage.tsx b/front/src/pages/ChannelPage.tsx
index cacc14f..26a8d2e 100644
--- a/front/src/pages/ChannelPage.tsx
+++ b/front/src/pages/ChannelPage.tsx
@@ -7,7 +7,7 @@ import axios from "axios";
import "../styles/ChannelPage.css";
-export default function ChannelPage() {
+export default function ChannelPage({socket}: {socket: WebSocket}) {
const { name } = useParams();
const [channel, setChannel] = useState();
const [messages, setMessages] = useState();
@@ -70,13 +70,7 @@ export default function ChannelPage() {
});
}, [name]);
- useEffect(() => {
- const socket = new WebSocket(`/api/ws`);
-
- const id = setInterval(() => {
- socket.send(JSON.stringify("ping"));
- }, 10000);
-
+ useEffect(() => {
socket.addEventListener('message', function (event) {
const data = JSON.parse(event.data);
if ((data.type === "new_message" || data.type === "delete_message") && data.channel_id === channel?.id) {
@@ -86,11 +80,6 @@ export default function ChannelPage() {
})
}
});
-
- return () => {
- clearInterval(id);
- socket.close();
- }
}, [channel])
useEffect(() => {
diff --git a/front/src/pages/ChannelsPage.tsx b/front/src/pages/ChannelsPage.tsx
index f4964b3..dc0a6ec 100644
--- a/front/src/pages/ChannelsPage.tsx
+++ b/front/src/pages/ChannelsPage.tsx
@@ -6,7 +6,7 @@ import TopBar from "../components/TopBar"
import "../styles/ChannelsPage.css"
-export default function ChannelsPage() {
+export default function ChannelsPage({socket}: {socket: WebSocket}) {
const [channels, setChannels] = useState();
const [search, setSearch] = useState("");
const [user, setUser] = useState();
@@ -34,12 +34,6 @@ export default function ChannelsPage() {
}, [])
useEffect(() => {
- const socket = new WebSocket("/api/ws");
-
- const id = setInterval(() => {
- socket.send(JSON.stringify("ping"));
- }, 10000);
-
socket.addEventListener('message', function (event) {
const data = JSON.parse(event.data);
if (data.type === "new_channel") {
@@ -53,11 +47,6 @@ export default function ChannelsPage() {
})
}
});
-
- return () => {
- clearInterval(id);
- socket.close();
- }
}, [])
if (!channels) {
diff --git a/front/src/pages/Home.tsx b/front/src/pages/Home.tsx
index e5ee3de..1e21b56 100644
--- a/front/src/pages/Home.tsx
+++ b/front/src/pages/Home.tsx
@@ -7,7 +7,7 @@ import axios from "axios"
import "../styles/Home.css"
-export default function Home() {
+export default function Home({socket}: {socket: WebSocket}) {
const [user, setUser] = useState();
const [channels, setChannels] = useState();
const [messages , setMessages] = useState();
@@ -59,12 +59,6 @@ export default function Home() {
}, [])
useEffect(() => {
- const socket = new WebSocket("/api/ws");
-
- const id = setInterval(() => {
- socket.send(JSON.stringify("ping"));
- }, 10000);
-
socket.addEventListener('message', function (event)
{
const data = JSON.parse(event.data);
@@ -106,11 +100,6 @@ export default function Home() {
})
}
});
-
- return () => {
- clearInterval(id);
- socket.close();
- }
}, [])
useEffect(() => {
diff --git a/front/src/pages/UserPage.tsx b/front/src/pages/UserPage.tsx
index fc974f5..0ac1b01 100644
--- a/front/src/pages/UserPage.tsx
+++ b/front/src/pages/UserPage.tsx
@@ -7,7 +7,7 @@ import axios from "axios";
import "../styles/UserPage.css";
-export default function UserPage() {
+export default function UserPage({socket}: {socket: WebSocket}) {
const { username } = useParams();
const [pageUser, setPageUser] = useState();
const [messages, setMessages] = useState();
@@ -45,12 +45,6 @@ export default function UserPage() {
}, [username]);
useEffect(() => {
- const socket = new WebSocket("/api/ws");
-
- const id = setInterval(() => {
- socket.send(JSON.stringify("ping"));
- }, 10000);
-
socket.addEventListener('message', function (event) {
const data = JSON.parse(event.data);
if ((data.type === "new_message" || data.type === "delete_message") && data.user_id === pageUser?.id) {
@@ -65,11 +59,6 @@ export default function UserPage() {
});
}
});
-
- return () => {
- clearInterval(id);
- socket.close();
- };
}, [pageUser]);
if (!pageUser) {