Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA PYTHON

deepstream io (Jak to działa dla programistów)

Serwer działający w czasie rzeczywistym jest zaprojektowany tak, aby natychmiast reagować na dane, dzięki czemu błyskawicznie odpowiada na każdą interakcję użytkownika lub zdarzenie systemowe. W przeciwieństwie do konwencjonalnych serwerów typu żądanie-odpowiedź, które powodują opóźnienia, [serwery](https://en.wikipedia.org/wiki/Server_(computing) działające w czasie rzeczywistym wykorzystują technologie i protokoły zapewniające ciągłą wymianę informacji i natychmiastowe aktualizacje. Wynika to z faktu, że serwer działający w czasie rzeczywistym ma kluczowe znaczenie dla wielu aplikacji wymagających komunikacji na żywo: systemów komunikacyjnych, gier online, platform transakcyjnych oraz narzędzi do współpracy. W tym artykule dowiemy się, jak korzystać z otwartego serwera działającego w czasie rzeczywistym deepstream oraz IronPDF do generowania plików PDF.

deepstream.io to skalowalny serwer działający w czasie rzeczywistym, służący do synchronizacji danych i komunikacji typu "wiele do wielu". Z łatwością radzi sobie z danymi i zapewnia synchronizację wielu klientów przy naprawdę niskim opóźnieniu, obsługując transfer danych binarnych. deepstream.io jest zaprojektowany do umieszczenia za innymi systemami równoważenia obciążenia i balancerami i oferuje wydajny sposób synchronizacji danych oraz aktualizacji plików zasobów, co sprawia, że idealnie nadaje się do aplikacji aktualizujących dane w czasie rzeczywistym i poszukujących skalowalnego rozwiązania serwerowego.

deepstream io (Jak to działa dla programistów): Rysunek 1 - deepstream.io

Wdrożenie deepstream.io przez programistów pozwala w łatwy sposób na aktualizacje na żywo, aplikacje oparte na współpracy oraz interaktywne doświadczenia w czasie rzeczywistym, bez konieczności rozpoczynania od zera. Zostało zaprojektowane z myślą o dużym obciążeniu i wydajnym skalowaniu, co czyni je oprogramowaniem z wyboru dla aplikacji o wysokiej współbieżności. deepstream.io jest elastyczne i może okazać się idealnym uzupełnieniem Twojego stosu technologicznego na wiele różnych sposobów. Zapewnia kompletne rozwiązanie, które pozwala użytkownikom tworzyć responsywne i interaktywne aplikacje internetowe oraz mobilne działające w czasie rzeczywistym.

Aby utworzyć nowy katalog Node.js, wprowadź następujące polecenia w konsoli:

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

Zainstaluj pakiet deepstream.io

Przede wszystkim należy zainstalować deepstream.io. Można zainstalować je za pomocą NPM lub pobrać pliki binarne z oficjalnej strony internetowej.

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

Podstawowa konfiguracja 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

Powyższy fragment kodu pokazuje, jak skonfigurować i uruchomić serwer deepstream.io przy użyciu pakietu @deepstream/server w Node.js. Najpierw importuje klasę Deepstream z pakietu, a następnie tworzy nową instancję. Wywołanie server.start() powoduje uruchomienie serwera i przygotowanie go do przyjmowania połączeń przychodzących w celu obsługi usług backendowych związanych z powiązaniem danych w czasie rzeczywistym, przesyłaniem wiadomości lub obecnością.

Łączenie Deepstream z klientem

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

Powyższy kod pokazuje, jak połączyć się z deepstreamem za pomocą biblioteki @deepstream/client. Ten skrypt importuje klasę DeepstreamClient, tworzy instancję i łączy ją z serwerem deepstream działającym lokalnie pod adresem IP 127.0.0.1 na porcie 6020. Loguje się bez podawania danych uwierzytelniających, co jest wystarczające, jeśli serwer nie korzysta z uwierzytelniania lub jest używany do testów. Ta konfiguracja inicjuje klienta zdolnego do synchronizacji danych i komunikacji w czasie rzeczywistym.

Po nawiązaniu połączenia z węzłem serwera w konsoli serwera pojawi się komunikat podobny do poniższego.

deepstream io (Jak to działa dla programistów): Rysunek 2 – Komunikat konsoli

Korzystanie z Listenera z deepstream.io

Poniżej znajduje się przykładowy kod, który można wykorzystać do tworzenia listenerów, jednej z podstawowych koncepcji 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

W powyższym kodzie klient loguje się do serwera deepstream hostowanego pod adresem 127.0.0.1:6020 przy użyciu biblioteki @deepstream/client. Po pomyślnym uwierzytelnieniu publikuje niestandardowe zdarzenie o nazwie "custom-event" z ładunkiem { message: "Hello, Deepstream!" }.

Przedstawiamy IronPDF

Użyj IronPDF, niezwykle wydajnego pakietu Node.js, do tworzenia, edytowania i konwertowania dokumentów PDF. Jest to narzędzie wykorzystywane w większości procesów programistycznych związanych z plikami PDF oraz w procesach zaplecza, takich jak modyfikowanie istniejących plików PDF i konwersja HTML na PDF. W aplikacjach, w których konieczne jest dynamiczne tworzenie i obsługa plików PDF, IronPDF staje się bardzo pomocny. Zapewnia przyjazny dla użytkownika i elastyczny sposób generowania wysokiej jakości dokumentów PDF.

deepstream io (Jak to działa dla programistów): Rysunek 3 – IronPDF

Zainstaluj pakiet IronPDF

Użyj npm, aby pobrać i zainstalować pakiety, które umożliwiają korzystanie z funkcji IronPDF w Node.js.

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

Funkcja generowania plików PDF

Utwórz funkcję, która wykorzystuje IronPDF do generowania plików PDF:

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

Konfiguracja klienta Deepstream

Napisz skrypt JavaScript, który będzie nasłuchiwał danych w czasie rzeczywistym i generował pliki PDF na podstawie tych danych:

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

Publikowanie zdarzeń w celu wygenerowania pliku PDF

Zdarzenia mogą być publikowane w celu wywołania generowania pliku PDF z innego pliku JavaScript lub części aplikacji:

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

Deepstream.io działa poprzez nasłuchiwanie zdarzeń w czasie rzeczywistym, które uruchamiają generowanie plików PDF. Funkcja generatePDF tworzy dokument PDF na podstawie danych z wydarzeń Deepstream.io przy użyciu IronPDF. DeepstreamClient subskrybuje te zdarzenia i za każdym razem, gdy publikowane są odpowiednie zdarzenia, wywołuje funkcję generowania pliku PDF. Taka integracja umożliwia dynamiczne generowanie plików PDF w czasie rzeczywistym na podstawie zdarzeń, żądań lub zmian danych.

deepstream io (Jak to działa dla programistów): Rysunek 4 – Wynik w formacie PDF

Licencjonowanie

Aby kod kompilował się i działał bez znaku wodnego, wymagany jest klucz licencyjny. Programiści, którzy chcieliby uzyskać Licencję Trial, mogą zarejestrować się tutaj. Aby je uzyskać, nie trzeba podawać danych karty kredytowej. Aby zarejestrować się na bezpłatny okres próbny, wystarczy podać swój adres e-mail.

Wnioski

Jedno z najskuteczniejszych rozwiązań do przetwarzania danych w czasie rzeczywistym i dynamicznego generowania dokumentów uzyskuje się dzięki połączeniu deepstream.io i IronPDF. deepstream.io synchronizuje zmiany i rejestruje wszystkie zdarzenia w czasie rzeczywistym, dzięki czemu może natychmiast reagować na każdą zmianę w danych. IronPDF zapewnia solidny mechanizm do tworzenia profesjonalnych dokumentów w locie. Ta integracja umożliwi Twoim aplikacjom automatyczne tworzenie i przetwarzanie dokumentów PDF nie tylko w przypadku zmian danych na żywo, ale również za każdym razem, gdy użytkownik wchodzi w interakcję z aplikacją.

Niezależnie od tego, czy chodzi o generowanie raportów, faktur czy jakichkolwiek innych dokumentów, deepstream.io zintegrowane z IronPDF pozwala uprościć przepływ pracy, tworzyć responsywne dokumenty oraz utrzymać aplikację w stanie aktualnym dzięki informacjom w czasie rzeczywistym. To połączenie sprawdza się najlepiej w przypadku zwinnych, opartych na danych i responsywnych aplikacji, które wymagają generowania dokumentów w czasie rzeczywistym oraz wsparcia w zakresie zarządzania nimi.

Biblioteki dostarczane przez Iron Software pozwalają nam szybko i łatwo tworzyć programy dla różnych systemów operacyjnych, przeglądarek i platform, w tym Windows, Android, MAC, Linux itp.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie