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

228
Visualizações
No se puede escuchar el evento enviado desde el servidor de plumas al cliente

Estoy construyendo un servidor que usa plumas y socketio .

Estoy tratando de usar el mecanismo de canales de plumas para notificar a los usuarios relevantes (conexiones) sobre eventos relevantes.
Los usuarios pertenecen a grupos, por lo que al conectarme al servidor, agrego la conexión a los canales apropiados.
Al publicar, dentro de app.publish , obtengo los datos correctos y veo que la conexión está adjunta al canal, pero no sé cómo escucharla en el cliente.

Este es un channels.js simplificado:

 app.on('connection', async (connection) => { connection.userGroups.forEach((group) => { app.channel(`group.groupId`).join(connection); } app.channel('1').join(connection); // dummy channel } app.publish((data, context) => { console.log(app.channel('1')); // output shown below return app.channel('1'); });

Estoy usando Postman como cliente, envío una solicitud de patch y escucho el evento llamado rooms patched (rooms es mi nombre de servicio) como se describe en losdocumentos de plumas . No llega ningún evento.
Si estoy usando la instancia de socketio sin procesar y emitiendo desde allí, todo parece funcionar bien y obtengo el evento en el cliente

 app.io.sockets.in('some room').emit('rooms patched', data);

pero según tengo entendido, anula todo el mecanismo de los canales.

Examinando la salida de app.publish

 Channel { _events: [Object: null prototype] { empty: [Function: bound onceWrapper] { listener: [Function (anonymous)] } }, _eventsCount: 1, _maxListeners: undefined, connections: [ { provider: 'socketio', headers: [Object], userInfo: [Object], userGroups: [Array] } ], data: null, [Symbol(kCapture)]: false }

podemos ver que la conexión está ahí.

¿Alguien puede ayudarme a resolver este problema?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Es necesario abrir un puerto en el extremo del cliente para crear el canal para que la línea de comunicación sea de 2 vías? Quizás javascript tendrá algún código para abrir el puerto de clientes.

about 4 years ago · Juan Pablo Isaza Relatório

0

Encontré mi tonto error tipográfico...
accidentalmente escribí

 app.channel(`group.groupId`).join(connection);

cuando realmente debería ser

 app.channel(group.groupId).join(connection);

Eso es una vergüenza realmente.

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