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

247
Vistas
reactjs websocket en un cliente de navegador: use la conexión de socket dentro de un gancho de efecto

Tengo un cliente de reactjs que se conecta a un servidor websocket, sin embargo, cuando trato de inicializarlo fuera de un gancho de efecto, el objeto websocket no está definido, pero se inicializa cuando está en un gancho de efecto.

al igual que:

 effect(()=>{ connection = new WebSocket(url) //do some stuff })

el problema es que quiero enviar cosas en base a un evento que ocurre en la aplicación reactjs

 effect(()=>{ connection.send(messages) },[messages])

en ese momento, la conexión no está definida, a pesar de que la conexión se realizó en ese momento, solo puedo suponer que, dado que tengo que usar Native WS para navegadores, tengo que inicializar el websocket en otro lugar, pero no sé dónde

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Mantener la variable de estado para la conexión. Cree solo una vez y tenga una conexión cercana en efecto. (Array de dependencia vacío para ejecutar una vez)

 const [connection, setConnection] = useState(null); useEffect(() => { connection = new WebSocket(url); setConnection(connection); return () => connection.close() }, []) useEffect(() => { connection.send(messages) }, [messages])
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