Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

155
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!