generated from lucien/api-template
fix: fixed websockets
This commit is contained in:
parent
edc6f34733
commit
1fee32f1d2
5 changed files with 14 additions and 53 deletions
|
@ -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<Channel>();
|
||||
const [messages, setMessages] = useState<Messages>();
|
||||
|
@ -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(() => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue