Skip to content

Commit

Permalink
feat :: useWebSocket
Browse files Browse the repository at this point in the history
  • Loading branch information
dutexion committed May 9, 2024
1 parent 6230505 commit bba78c3
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/hooks/useWebSocket.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { useEffect, useState, useRef } from 'react';

interface UseWebSocketProps {
url: string;
}

export const useWebSocket = ({ url }: UseWebSocketProps) => {
const [messages, setMessages] = useState<string[]>([]);
const webSocket = useRef<WebSocket | null>(null);

useEffect(() => {
webSocket.current = new WebSocket(url);

webSocket.current.onmessage = (event) => {
setMessages((prevMessages) => [...prevMessages, event.data]);
};

return () => {
webSocket.current?.close();
};
}, [url]);

const sendMessage = (message: string) => {
webSocket.current?.send(message);
};

return { messages, sendMessage };
};

0 comments on commit bba78c3

Please sign in to comment.