IRONSOFTWAREHOME
AJUDA DO NODE

faye NPM (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 20 de junho de 2026

IronPDF e Faye desempenham papéis diferentes no desenvolvimento web, mas suas habilidades se complementam muito bem. Graças ao pacote NPM Faye, que utiliza WebSocket ou outros protocolos de transporte compatíveis, servidores e clientes web podem se comunicar em tempo real. Oferece um sistema de mensagens pub/sub simples, porém eficaz, que permite aplicações web escaláveis ​​e de compartilhamento instantâneo de dados. A versão mais recente do Faye é a 1.4.0, publicada há 4 anos. Por outro lado, outro pacote npm chamado IronPDF permite que os desenvolvedores criem, modifiquem e convertam documentos PDF programaticamente em ambientes Node.js

Os desenvolvedores podem aprimorar aplicativos da web com recursos de produção de PDF em tempo real integrando o Faye ao IronPDF. Aplicações que necessitam da geração instantânea de relatórios em PDF, geração dinâmica de documentos dependendo das entradas do usuário ou de alterações de dados em tempo real, e cenários de edição colaborativa de documentos podem achar essa conexão muito útil. Com a ajuda das ferramentas de criação de PDFs do IronPDF e dos recursos de mensagens de publicação/assinatura simples e em tempo real do Faye, os desenvolvedores podem criar aplicativos da web interativos, adaptáveis ​​e orientados a dados que atendem a uma variedade de objetivos de usuários e negócios.

O que é Faye?

Um plugin do Node.js chamado Faye facilita a comunicação em tempo real entre clientes e servidores usando WebSocket ou outros protocolos de transporte e WebSocket compatíveis. Oferece um mecanismo de mensagens pub/sub que torna a comunicação de aplicações web escalável e eficaz. Ao gerenciar conexões e roteamento de mensagens entre clientes e servidores de forma fluida, o Faye pretende simplificar a implementação de funcionalidades em tempo real, como atualizações ao vivo, notificações e interações colaborativas. A Faye é frequentemente integrada por desenvolvedores para aprimorar seus aplicativos com recursos colaborativos, interativos e responsivos que exigem transmissão de dados em tempo real entre usuários e servidores.

faye NPM (Como Funciona Para Desenvolvedores): Figura 1 - Faye

Características de Faye

O módulo Faye NPM é uma ferramenta útil para integrar mensagens de eventos em tempo real em aplicações web, pois oferece diversos recursos importantes:

  • Suporte a WebSocket e protocolos de transporte: Com suporte a WebSocket e métodos alternativos para protocolos de transporte, como HTTP long-polling, o Faye pode manter canais de comunicação em tempo real com diferentes navegadores e configurações de rede.

  • Mensagens Pub/Sub: Com a ajuda do padrão de mensagens de publicação/assinatura do Faye, os usuários podem se inscrever em canais (tópicos) específicos e receber atualizações ou mensagens assim que forem publicadas.

  • Escalabilidade: Graças à sua arquitetura escalável, consegue gerir eficazmente um grande número de ligações e mensagens simultâneas, sendo, portanto, adequado para aplicações que exigem um elevado desempenho e capacidade de resposta.

  • Integração do lado do cliente e do servidor: Faye facilita a comunicação fluida entre clientes web e servidores, integrando tanto o lado do cliente (navegador) quanto o lado do servidor (Node.js).

  • Segurança: Para regular o acesso a canais e mensagens, incorpora técnicas para proteger conexões WebSocket, bem como para realizar procedimentos de autenticação e autorização.

  • Facilidade de uso: Os desenvolvedores podem criar recursos como atualizações ao vivo, notificações, sistemas de bate-papo e muito mais com pouca configuração, usando a API intuitiva do Faye para configurar e gerenciar comunicações em tempo real.

  • Confiabilidade: A Faye mantém canais de comunicação robustos e resistentes a interrupções de rede, gerenciando reconexões e garantindo a entrega confiável de mensagens.

  • Personalização e extensibilidade: Com o uso de plugins, extensões e adaptadores exclusivos, os desenvolvedores podem aumentar a capacidade do Faye e fornecer soluções especializadas para atender a necessidades específicas de aplicativos.

Criar e configurar Faye

Tanto a integração do lado do cliente quanto a instância do Faye do lado do servidor devem ser configuradas para construir e configurar o Faye usando o NPM em um ambiente Node.js Aqui está um manual prático para você começar:

Configuração do lado do servidor

Instalar Faye

Instale primeiro o pacote Faye:

npm install faye
SHELL

Criar servidor Faye

Certifique-se de que o servidor Faye está configurado criando um arquivo server.js no Node.js:

// server.js

const http = require('http');
const faye = require('faye');

// Create an HTTP server
const server = http.createServer();

// Mount the Faye server at '/faye'
const bayeux = new faye.NodeAdapter({ mount: '/faye', timeout: 45 });

// Attach Faye to the HTTP server
bayeux.attach(server);

// Start the HTTP server
const PORT = 8000;
server.listen(PORT, () => {
    console.log(`Faye server listening on port ${PORT}`);
});
JavaScript

Neste caso, um servidor HTTP escutando na porta 8000 tem o servidor Faye montado em /faye. Adapte a porta e a rota de montagem às necessidades da versão da sua aplicação.

Configuração do lado do cliente

Adicione a biblioteca cliente Faye à sua página HTML ou utilize um bundler de módulos como o Webpack ou o Browserify para fazer isso:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Faye Client Example</title>
  </head>
  <body>
    <!-- Include the Faye client script -->
    <script
      type="text/javascript"
      src="http://localhost:8000/faye/client.js"
    ></script>

    Enter the Message: 
    <input type="text" id="messageInput">
    <button onclick="sendMessage()">Send</button>

    <script>
      // Initialize Faye client
      const client = new Faye.Client('http://localhost:8000/faye');

      // Subscribe to a channel
      client.subscribe('/channel', function(message) {
          console.log('Received message:', message);
          // Handle received messages
      });

      // Function to publish a message
      function sendMessage() {
          const message = document.getElementById('messageInput').value;
          client.publish('/channel', { text: message });
      }
    </script>
  </body>
</html>
HTML

Adapte o URL do servidor Faye (http://localhost:8000/faye) e o código-fonte e URL do script cliente Faye (client.js) à sua configuração.

Você pode adicionar recursos de mensagens em tempo real ao seu aplicativo web Node.js configurando o pacote Faye seguindo estas instruções. Modifique os exemplos de acordo com a arquitetura e as necessidades da sua aplicação específica.

Começando

Você precisará configurar um servidor Node.js para lidar com as conexões Faye e as solicitações de geração de PDF antes de poder usar o IronPDF para geração dinâmica de PDFs e o Faye para comunicações em tempo real. Aqui está um guia detalhado:

O que é o IronPDF?

IronPDF for Node.js é um programa robusto em Node.js projetado para converter dados HTML em arquivos PDF de altíssima qualidade. Ele acelera o processo de conversão de arquivos HTML, CSS e outros arquivos JavaScript em PDFs formatados corretamente, sem comprometer o conteúdo original online. Esta é uma ferramenta extremamente útil para aplicações web que precisam gerar documentos dinâmicos e imprimíveis, como faturas, certificados e relatórios.

O IronPDF possui diversos recursos, incluindo configurações de página personalizáveis, cabeçalhos, rodapés e a opção de adicionar fontes e imagens. Ele consegue gerenciar estilos e layouts complexos para garantir que cada PDF de teste gerado atenda às especificações. Além disso, o IronPDF controla a execução de JavaScript dentro do HTML, permitindo uma renderização de conteúdo dinâmica e interativa precisa.

faye NPM (Como Funciona Para Desenvolvedores): Figura 4 - IronPDF

Funcionalidades do IronPDF

  1. Geração de PDF a partir de HTML: Converta HTML, CSS e JavaScript em PDF. Suporta dois padrões modernos da web: media queries e design responsivo. Útil para usar HTML e CSS para decorar dinamicamente documentos PDF, faturas e relatórios.

  2. Edição de PDF: É possível adicionar texto, imagens e outros materiais a PDFs já existentes. Extrair texto e imagens de arquivos PDF. Mesclar vários PDFs em um único arquivo. Dividir arquivos PDF em vários documentos distintos. Adicione cabeçalhos, rodapés, anotações e marcas d'água.

  3. Desempenho e Confiabilidade: Em contextos industriais, alto desempenho e confiabilidade são atributos de projeto desejáveis. Lida facilmente com grandes conjuntos de documentos.

Instale o IronPDF

Para obter as ferramentas necessárias para trabalhar com PDFs em projetos Node.js , instale o pacote IronPDF . Execute o seguinte comando:

npm i @ironsoftware/ironpdf

Combine Faye com IronPDF

Crie um servidor Node.js rudimentar que combine o IronPDF para geração de PDFs com o Faye para mensagens em tempo real:

// server.js

const http = require('http');
const faye = require('faye');
const IronPdf = require('@ironsoftware/ironpdf');

// Configure IronPDF license (if required)
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({
    licenseKey: "",  // Set your license key here
});

// Create an HTTP server
const server = http.createServer();

// Create a Faye server
const bayeux = new faye.NodeAdapter({ mount: '/faye', timeout: 45 });

// Attach the Faye server to the HTTP server
bayeux.attach(server);

// Handle Faye client connections
bayeux.on('handshake', function(clientId) {
    console.log(`Client connected: ${clientId}`);
});

// Handle incoming messages for PDF generation
bayeux.on('publish', async function (clientId, channel, data) {
    if (channel === '/generate_pdf') {
        console.log(`Received PDF generation request from client ${clientId}: ${data.htmlContent}`);
        // Generate PDF using IronPDF
        let pdfData = await generatePdf(data.htmlContent);
        var base64String = btoa(String.fromCharCode.apply(null, new Uint8Array(pdfData)));
        bayeux.getClient().publish(`/pdf_result/${clientId}`, { pdfData: base64String });
    }
});

// Function to generate PDF using IronPDF
const generatePdf = async (htmlContent) => {
    const pdfDocument = IronPdf.PdfDocument;
    let result = (await pdfDocument.fromHtml(htmlContent));
    const pdfBuffer = await result.saveAsBuffer();
    return pdfBuffer;
};

// Start the HTTP server
const PORT = 3000;
server.listen(PORT, function() {
    console.log(`Server listening on port ${PORT}`);
});
JavaScript

Configuração do lado do cliente

Configure o Faye no lado do cliente para interagir com o servidor e enviar solicitações para a criação de PDFs:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Faye + IronPDF Example</title>
</head>
<body>
    <button onclick="generatePdf()">Generate PDF</button>

    <!-- Include the Faye client library -->
    <script src="https://cdn.jsdelivr.net/npm/faye/browser/faye-browser.min.js"></script>

    <script>
        // Initialize Faye client
        const client = new Faye.Client('http://localhost:3000/faye');

        // Subscribe to receive PDF result messages
        client.subscribe('/pdf_result/*', function(message) {
            console.log('PDF received:', message);
            displayPdf(message.pdfData);
        });

        // Function to request PDF generation
        function generatePdf() {
            // Example: HTML content to generate PDF
            const htmlContent = '<html><body><h1>Hello IronPDF!</h1></body></html>';

            // Send HTML content to server for PDF generation
            client.publish('/generate_pdf', { htmlContent: htmlContent });
        }

        // Function to display the generated PDF
        function displayPdf(pdfData) {
            // Example: Display or download PDF data received from server
            const pdfBlob = new Blob([Uint8Array.from(atob(pdfData), c => c.charCodeAt(0))], { type: 'application/pdf' });
            const pdfUrl = URL.createObjectURL(pdfBlob);
            window.open(pdfUrl, '_blank');
        }
    </script>
</body>
</html>
HTML

Lado do Servidor: Um servidor Faye (bayeux) é integrado pelo servidor Node.js, que também configura um servidor HTTP. No canal /generate_pdf, ele observa mensagens recebidas e conexões de clientes. Ao receber uma solicitação para geração de PDF, o sistema converte as informações HTML fornecidas em um PDF usando o IronPDF e retorna os dados do PDF finalizado como uma mensagem fácil de usar para o cliente.

Lado do Cliente: Para obter os dados PDF gerados, o cliente do navegador cria uma conexão Faye (client) com o servidor e se inscreve no canal /pdf_result/*. O botão "Gerar PDF" faz com que o usuário envie um pedido de conteúdo HTML para o servidor, que o servidor usa para gerar um PDF usando client.publish('/generate_pdf', { htmlContent: htmlContent }). O programa exibe ou baixa o PDF após receber os dados do arquivo.

Conclusão

Ao integrar o Faye com o IronPDF, oferece-se uma solução confiável para aplicações web contemporâneas, combinando os benefícios da criação dinâmica de PDFs e do envio de mensagens em tempo real. A comunicação instantânea entre cliente e servidor é possível graças ao sistema de mensagens pub/sub do Faye, que suporta aplicações que necessitam de atualizações em tempo real, como rastreadores de bugs, notificações e recursos de trabalho em equipe. Em contrapartida, o IronPDF permite a criação, modificação e conversão programática de documentos PDF, possibilitando a geração dinâmica de relatórios, faturas e outros documentos em resposta à entrada do usuário ou a dados em tempo real.

Essas tecnologias podem ser integradas para fornecer material criado dinamicamente e feedback instantâneo, o que pode melhorar a experiência do usuário. Por exemplo, os consumidores não precisam esperar pelo processamento em lote nem atualizar a página da web para receber uma solicitação de relatório em PDF que é processada instantaneamente. Graças a essa interação fluida, os aplicativos da Web tornam-se mais responsivos e eficientes, aumentando sua interatividade e facilidade de uso.

Ao integrar o IronPDF e o Iron Software , podemos adicionar OCR, leitura de código de barras, saída em PDF, interação com o Excel e muitas outras funcionalidades ao seu conjunto de ferramentas de desenvolvimento de aplicativos Node.js , aumentando sua utilidade. A vasta biblioteca de plugins com suporte da comunidade e as tecnologias altamente configuráveis ​​da Iron Software permitem que os desenvolvedores criem recursos e aplicativos da web mais rapidamente.

Antes de decidir comprar, os desenvolvedores podem aproveitar os diversos recursos do IronPDF com uma licença de avaliação gratuita e vários exemplos de código-fonte fornecidos pela empresa. Consulte a página de licença para obter mais detalhes sobre o licenciamento perpétuo do IronPDF. Acesse a página de documentação do projeto para obter mais detalhes sobre como começar a usar o IronPDF.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.