UNPKG

reactuals

Version:

A useful package providing a collection of 50+ React hooks and utilities to simplify React development.

20 lines (19 loc) 680 B
import { useEffect, useRef, useState } from "react"; export function useWebSocket(url) { const [data, setData] = useState(null); const [error, setError] = useState(null); const socketRef = useRef(null); useEffect(() => { const socket = new WebSocket(url); socketRef.current = socket; socket.onmessage = (event) => setData(event.data); socket.onerror = (event) => setError(event); return () => socket.close(); }, [url]); const sendMessage = (msg) => { if (socketRef.current?.readyState === WebSocket.OPEN) { socketRef.current.send(msg); } }; return { data, error, sendMessage }; }