Ir para o conteúdo do rodapé
AJUDA DO PYTHON

deepstream io (Como funciona para desenvolvedores)

Um servidor em tempo real é projetado para responder aos dados instantaneamente, tornando-se imediatamente responsivo a cada interação do usuário ou evento do sistema. Ao contrário dos servidores convencionais de solicitação-resposta, que introduzem atrasos, [os servidores](https://en.wikipedia.org/wiki/Server_(computing) em tempo real utilizam tecnologias e protocolos para garantir a troca contínua de informações e atualizações instantâneas. Isso ocorre porque um servidor em tempo real é essencial para diversas aplicações que exigem comunicação ao vivo: sistemas de mensagens, jogos online, plataformas de negociação financeira e ferramentas de colaboração. Neste artigo, vamos aprender como usar o servidor aberto em tempo real deepstream e o IronPDF para gerar PDFs.

deepstream.io é um servidor escalável e em tempo real para sincronização de dados e mensagens de muitos para muitos. Ele consegue lidar com dados com facilidade e manter vários clientes sincronizados com latência muito baixa, suportando transferência de dados binários. O deepstream.io foi projetado para ser usado atrás de outros balanceadores de carga e oferece uma maneira eficiente de sincronizar dados e manter arquivos de recursos atualizados, o que o torna perfeitamente adequado para aplicativos que atualizam dados em tempo real e que buscam uma solução de servidor escalável.

deepstream.io (Como funciona para desenvolvedores): Figura 1 - deepstream.io

A implementação do deepstream.io por desenvolvedores pode facilmente permitir atualizações ao vivo, aplicativos colaborativos e experiências interativas em tempo real, sem precisar começar do zero. Foi projetado para suportar altas cargas e escalabilidade eficiente, tornando-se o software ideal para aplicações de alta concorrência. O deepstream.io é flexível e pode se revelar o complemento perfeito para sua infraestrutura de diversas maneiras. Oferece uma solução completa que permite aos usuários criar aplicativos web e móveis interativos, responsivos e em tempo real.

Para criar um novo diretório Node.js, digite os seguintes comandos no console:

mkdir deepstream-project
cd deepstream-project
npm init -y
mkdir deepstream-project
cd deepstream-project
npm init -y
SHELL

Instale o pacote deepstream.io

Primeiramente, você precisa instalar o deepstream.io. Você pode usar o NPM para instalá-lo ou baixar os arquivos binários do site oficial.

npm install @deepstream/server
npm install @deepstream/server
SHELL

Configuração básica do deepstream.io

const { Deepstream } = require('@deepstream/server');

// Create a new Deepstream server instance
const server = new Deepstream({});

// Start the server to listen for client connections
server.start();
const { Deepstream } = require('@deepstream/server');

// Create a new Deepstream server instance
const server = new Deepstream({});

// Start the server to listen for client connections
server.start();
JAVASCRIPT

O trecho de código acima demonstra como configurar e iniciar um servidor deepstream.io usando o pacote @deepstream/server em Node.js Primeiro, importa a classe Deepstream do pacote e, em seguida, cria uma nova instância. Ao chamar server.start(), o servidor é iniciado e fica pronto para aceitar conexões de entrada para lidar com vinculação de dados em tempo real, mensagens ou serviços de backend de presença.

Conectando o Deepstream ao cliente

const { DeepstreamClient } = require('@deepstream/client');

// Connect to a local deepstream server
const client = new DeepstreamClient('127.0.0.1:6020');

// Log in to the server without credentials (suitable for servers without authentication)
client.login(null);
const { DeepstreamClient } = require('@deepstream/client');

// Connect to a local deepstream server
const client = new DeepstreamClient('127.0.0.1:6020');

// Log in to the server without credentials (suitable for servers without authentication)
client.login(null);
JAVASCRIPT

O código acima demonstra como conectar-se ao deepstream usando a biblioteca @deepstream/client. Este script importa a classe DeepstreamClient, cria uma instância e a conecta a um servidor deepstream em execução localmente no endereço IP 127.0.0.1 na porta 6020. Ele faz login sem credenciais, o que é suficiente se o servidor não usar autenticação ou se for usado para casos de teste. Esta configuração inicializa um cliente capaz de sincronização e comunicação de dados em tempo real.

Assim que a conexão com o nó do servidor for estabelecida, uma mensagem semelhante à abaixo aparecerá no console do servidor.

deepstream io (Como funciona para desenvolvedores): Figura 2 - Mensagem do console

Utilizando o Listener com deepstream.io

Abaixo está um exemplo de código que pode ser usado para criar ouvintes, um dos conceitos principais do deepstream.

const { DeepstreamClient } = require("@deepstream/client");

// Connect to the Deepstream server
const client = new DeepstreamClient("127.0.0.1:6020");

// Log in to the server
client.login(null, (success, clientData) => {
  if (success) {
    const event = client.event;
    // Publish a custom event
    event.publish("custom-event", { message: "Hello, Deepstream!" });
  }
});
const { DeepstreamClient } = require("@deepstream/client");

// Connect to the Deepstream server
const client = new DeepstreamClient("127.0.0.1:6020");

// Log in to the server
client.login(null, (success, clientData) => {
  if (success) {
    const event = client.event;
    // Publish a custom event
    event.publish("custom-event", { message: "Hello, Deepstream!" });
  }
});
JAVASCRIPT

No código acima, o cliente se conecta a um servidor deepstream hospedado em 127.0.0.1:6020 usando a biblioteca @deepstream/client. Após autenticação bem-sucedida, ele publica um evento personalizado chamado "custom-event" com uma carga útil { message: "Hello, Deepstream!" }.

Apresentando o IronPDF

Utilize o IronPDF , um pacote Node.js incrivelmente poderoso, para criar, editar, converter e editar documentos PDF. É uma ferramenta utilizada na maioria dos processos de programação em PDFs, bem como em processos de back-end, como a modificação de PDFs preexistentes e a conversão de HTML em PDFs. Em aplicações onde a criação e o gerenciamento dinâmico de PDFs são necessários, o IronPDF torna-se muito útil. Proporciona uma forma fácil e flexível de gerar documentos PDF de alta qualidade.

deepstream io (Como funciona para desenvolvedores): Figura 3 - IronPDF

Instale o pacote IronPDF

Use o npm para baixar e instalar pacotes que habilitam a funcionalidade IronPDF do Node.js

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Função de geração de PDF

Crie uma função que utilize o IronPDF para gerar PDFs:

const IronPdf = require('@ironsoftware/ironpdf');
const { PdfDocument } = IronPdf;

// Set IronPDF configuration, replacing 'YOUR_LICENSE_KEY' with your actual license key
const config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: 'YOUR_LICENSE_KEY' });

async function generatePDF(title, content) {
  try {
    // Generate PDF from HTML content
    const pdf = await PdfDocument.fromHtml(`<html><body><h1>${title}</h1><p>${content}</p></body></html>`);
    return await pdf.saveAsBuffer();
  } catch (error) {
    console.error('Error generating PDF:', error);
    throw error;
  }
}

module.exports = generatePDF;
const IronPdf = require('@ironsoftware/ironpdf');
const { PdfDocument } = IronPdf;

// Set IronPDF configuration, replacing 'YOUR_LICENSE_KEY' with your actual license key
const config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: 'YOUR_LICENSE_KEY' });

async function generatePDF(title, content) {
  try {
    // Generate PDF from HTML content
    const pdf = await PdfDocument.fromHtml(`<html><body><h1>${title}</h1><p>${content}</p></body></html>`);
    return await pdf.saveAsBuffer();
  } catch (error) {
    console.error('Error generating PDF:', error);
    throw error;
  }
}

module.exports = generatePDF;
JAVASCRIPT

Configurar o cliente Deepstream

Escreva um script JavaScript que fique à escuta de dados em tempo real e gere PDFs com base nesses dados:

const { DeepstreamClient } = require('@deepstream/client');
const generatePDF = require('./generatePdf'); // Path to your PDF generation function

// Connect to the Deepstream server
const client = new DeepstreamClient('127.0.0.1:6020');

// Log in to the server
client.login(null, async (success) => {
  if (success) {
    console.log('Deepstream connected successfully');
    // Listen for a custom event to trigger PDF generation
    const event = client.event;
    event.subscribe('generate-pdf', async (data) => {
      const { title, content } = data;
      if (!title || !content) {
        console.error('Missing title or content for PDF generation');
        return;
      }
      try {
        // Generate the PDF
        const pdfBuffer = await generatePDF(title, content);
        // Handle the PDF buffer (e.g., save to file, send over network)
        console.log('PDF generated successfully');
        // Example: Save PDF to a file (optional)
        const fs = require('fs');
        fs.writeFileSync('generated.pdf', pdfBuffer);
      } catch (error) {
        console.error('Error generating PDF:', error);
      }
    });
  } else {
    console.error('Failed to connect to Deepstream');
  }
});
const { DeepstreamClient } = require('@deepstream/client');
const generatePDF = require('./generatePdf'); // Path to your PDF generation function

// Connect to the Deepstream server
const client = new DeepstreamClient('127.0.0.1:6020');

// Log in to the server
client.login(null, async (success) => {
  if (success) {
    console.log('Deepstream connected successfully');
    // Listen for a custom event to trigger PDF generation
    const event = client.event;
    event.subscribe('generate-pdf', async (data) => {
      const { title, content } = data;
      if (!title || !content) {
        console.error('Missing title or content for PDF generation');
        return;
      }
      try {
        // Generate the PDF
        const pdfBuffer = await generatePDF(title, content);
        // Handle the PDF buffer (e.g., save to file, send over network)
        console.log('PDF generated successfully');
        // Example: Save PDF to a file (optional)
        const fs = require('fs');
        fs.writeFileSync('generated.pdf', pdfBuffer);
      } catch (error) {
        console.error('Error generating PDF:', error);
      }
    });
  } else {
    console.error('Failed to connect to Deepstream');
  }
});
JAVASCRIPT

Publicar eventos para acionar a geração de PDFs

Os eventos podem ser publicados para acionar a geração de PDFs a partir de outro arquivo JavaScript ou de parte do seu aplicativo:

const { DeepstreamClient } = require('@deepstream/client');

// Connect to the Deepstream server
const client = new DeepstreamClient('127.0.0.1:6020');

// Log in to the server
client.login(null, () => {
  const event = client.event;
  // Publish a custom event with title and content
  event.publish('generate-pdf', {
    title: 'Sample PDF Title',
    content: 'This is the content of the PDF document.'
  });
});
const { DeepstreamClient } = require('@deepstream/client');

// Connect to the Deepstream server
const client = new DeepstreamClient('127.0.0.1:6020');

// Log in to the server
client.login(null, () => {
  const event = client.event;
  // Publish a custom event with title and content
  event.publish('generate-pdf', {
    title: 'Sample PDF Title',
    content: 'This is the content of the PDF document.'
  });
});
JAVASCRIPT

O Deepstream.io é implementado através da escuta de eventos em tempo real que acionam a geração de PDFs . A função generatePDF cria um documento PDF com base em dados de eventos do Deepstream.io usando o IronPDF. O DeepstreamClient se inscreve nesses eventos e, sempre que eventos relevantes são publicados, ele chama a função de geração de PDF. Essa integração permite a geração dinâmica de PDFs em tempo real com base em ocorrências de eventos, solicitações ou alterações de dados.

deepstream io (Como funciona para desenvolvedores): Figura 4 - Saída em PDF

Licenciamento

Para que o código compile e funcione sem marca d'água, é necessária uma chave de licença. Os desenvolvedores que desejarem uma licença de avaliação podem se cadastrar aqui . Para obtê-lo, não é necessário apresentar um cartão de crédito. Para se inscrever para um teste gratuito, basta inserir seu endereço de e-mail.

Conclusão

Uma das soluções mais robustas para processamento de dados em tempo real e geração dinâmica de documentos é obtida através da combinação de deepstream.io e IronPDF. O deepstream.io sincroniza as alterações e registra todos os eventos em tempo real, podendo assim reagir imediatamente a qualquer mudança nos dados. O IronPDF oferece um mecanismo robusto para a criação de documentos profissionais em tempo real. Essa integração permitirá que seus aplicativos criem e processem documentos PDF automaticamente, não apenas quando os dados em tempo real forem alterados, mas também sempre que um usuário interagir com seu aplicativo.

Seja para geração de relatórios, faturas ou qualquer outro tipo de documento, a integração do deepstream.io com o IronPDF permite a simplificação do fluxo de trabalho, a criação ágil de documentos e mantém seu aplicativo enxuto e atualizado com informações em tempo real. Essa combinação funciona melhor para aplicações ágeis, orientadas a dados e responsivas que exigem suporte para geração e gerenciamento de documentos em tempo real.

As bibliotecas fornecidas pela Iron Software permitem criar programas de forma rápida e fácil para diversos sistemas operacionais, navegadores e plataformas, incluindo Windows, Android, MAC, Linux, etc.

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 ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim