Actualmente estoy usando este código para recibir datos de sockets Código:
socket.on('send_image', (message) => { setImage(message.image) console.log(message) })el servidor envía datos (imágenes de la cámara) continuamente. ¿Cómo recibirlo sin refrescar? probé un método que solicita datos cada milisegundos. no se si es una buena manera o no
Solicita cada código de milisegundos:
useEffect(() => { const id = setInterval(() => { socket.on('send_image', (message) => { setImage(message.image) console.log(message) }) }, 10); return () => clearInterval(id); }, []);¿Hay alguna otra forma de recibir continuamente datos de los sockets?
Para actualizar el estado local tan pronto como se reciba un mensaje de send_image , simplemente registre el controlador en su useEffect .
useEffect(() => { const handler = (message) => { setImage(message.image); console.log(message); }; socket.on("send_image", handler); return () => socket.off("send_image", handler); // assuming `.off` deregisters a callback }, []);