Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Reconexión al canal de socket después de la desconexión en reaccionar

Hay varias respuestas a esta pregunta, pero están desactualizadas (¿creo que ya no existe el evento de "reconexión"?) O simplemente no me funciona.

Tengo una tonelada de datos que el cliente está esperando del servidor a través de sockets socket.io. Está bien hasta 10-15 minutos más tarde con más de 1600 resultados de que el zócalo se vuelve a conectar. Después de que ocurre la reconexión, ya no obtengo los datos que emite el servidor, lo que supongo que se debe a que perdí los eventos de la conexión del socket original.

Tengo que actualizar para seguir obteniendo esos datos.

¿Cómo me vuelvo a conectar a socket.io después de cada reconexión?

Cliente:

socket.js (contexto)

 import { createContext } from 'react'; import io from 'socket.io-client'; export const socket = io('http://localhost:5000'); export const SocketContext = createContext();

Diseño.js

 import { socket, SocketContext } from '../context/socket' function MyApp({ Component, pageProps }) { return <SocketContext.Provider value={socket}> <Layout> <Component {...pageProps} /> </Layout> </SocketContext.Provider> }

página (siguiente.js)

 import { SocketContext } from '../context/socket'; ... const socket = useContext(SocketContext); useEffect(() => { socket.emit('joined', socketChannel); socket.on(socketChannel, handleStream); }, []);

Servidor:

index.js (Usa fastify-socket.io )

 fastify.io.on('connection', socket => { socket.on('joined', (channel) => { socket.join(channel); }) }); redis.subscriber.on('message', (channel, message) => { io.to(channel).emit(channel, message); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Socket.io abandonará automáticamente las habitaciones cuando tenga una desconexión.

Las habitaciones se dejan automáticamente al desconectarse.

en useEffect() , te unirás a la sala una vez:

 socket.emit('joined', socketChannel); socket.on(socketChannel, handleStream);

Dos opciones:

  1. Unirse automáticamente al conectarse en el cliente:
 useEffect(() => { socket.on(socketChannel, handleStream); // connect fires when connected, also after reconnected socket.on('connect', () => { console.log('connect', socket.connected); // automatically join the room socket.emit('joined', socketChannel); }); }, []);
  1. Únase automáticamente en el servidor, pero esto supone que todos los clientes se unen a la sala correspondiente que puede no ser adecuada:
 io.on('connection', (socket) => { console.log(`${socket.id} connected`); // automatically join the room socket.join(socketChannel); ...
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda