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

127
Visualizações
eventemitter.on se registra y activa varias veces cuando se usa con sockets.io

Quiero llamar a un evento io.emit('eventname') de socket.io, cuando se activa un evento personalizado en otro archivo en node.js. esto sucede en respuesta a una solicitud HTTP para una aplicación frontend

además, he creado un emisor de eventos común ya que la simple importación y exportación de eventos no se activaba, como se esperaba, entre archivos en node.js

commonEventEmitter.js

 var events = require('events') var em = new events.EventEmitter() module.exports.commonEmitter = em;

Este archivo recibe la solicitud HTTP y activa un evento, es decir, 'newSOS, registrado en el archivo socket.js

sosRequest.js

 const common = require('../utils/commonEventEmitter') const commonEvent = common.commonEmitter exports.createSOS = asyncHandler( async (req,res,next) => { const { type , location } = req.body Request = await SOS.findOne({type : type , createdBy: req.commuter[0].id , status:'Pending'}) commonEvent.emit('newSOS') const request = await SOS.create({ type, location, createdBy, }) res.status(200).json({ success:true, request })

En este archivo, se registra el evento 'newSOS' y se llama muchas veces a medida que se recibe una solicitud HTTP.

socket.js

 const io = require('socket.io')() // const eventHandlers = require('./eventHandlers'); const common = require('../utils/commonEventEmitter') const commonEvent = common.commonEmitter io.on('connection' , (socket)=>{ commonEvent.on('newSOS' , ()=> { console.log('running only once'.bgGreen) io.emit('sos_admin' , "just do it") }) } module.exports = io

Se ejecuta varias veces en 1 página. El patrón de la siguiente manera:

Si la página se carga por primera vez, se ejecutará una vez. Si la página se carga por segunda vez, se ejecutará dos veces. Si la página se carga n veces, se ejecutará n veces.

y por favor también dígame si mi io.on('conexión') está siendo llamado varias veces.

about 4 years ago · Santiago Gelvez
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