Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

147
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda