import { useCallback, useState } from "react"; import { WEBSOCKET_URL } from "../background/constants"; function useWebSocketConnection() { const createWebSocketConnection = () => { const webSocket = new WebSocket(WEBSOCKET_URL); return webSocket } const [webSocketConnection] = useState(createWebSocketConnection()) const sendMessage = useCallback((message: string) => { //if the socket's open, send a message: if (webSocketConnection.readyState === WebSocket.OPEN) { webSocketConnection.send(message); } }, [webSocketConnection] ) const onMessage = useCallback( (messageHandler: (messageHandler: string) => void) => { const wsMessageHandler = (ev: MessageEvent) => { messageHandler(ev.data) } webSocketConnection.addEventListener('message', wsMessageHandler) }, [webSocketConnection] ) return { onMessage, sendMessage } } export default useWebSocketConnection;