Przejdź do treści stopki
POMOC NODE

WebSockets Node.js js (jak to działa dla programistów)

Zapewnienie komunikacji w czasie rzeczywistym i dynamicznego generowania treści ma kluczowe znaczenie dla tworzenia atrakcyjnych i interaktywnych aplikacji w dzisiejszym szybko zmieniającym się świecie tworzenia stron internetowych. W połączeniu z Node.js, lekką i wydajną implementacją JavaScript po stronie serwera, WebSockets to potężny protokół umożliwiający dwukierunkową komunikację między klientami a serwerami, co czyni je skutecznym zestawem do tworzenia aplikacji działających w czasie rzeczywistym. Możesz tworzyć i dostarczać dynamiczne pliki PDF w czasie rzeczywistym, jeśli dodasz do tego zestawu IronPDF, elastyczną bibliotekę do tworzenia dokumentów PDF.

W tym wprowadzeniu omówimy zasady działania WebSocketów, a także sposób, w jaki Node.js ułatwia ich implementację. Na koniec zobaczymy, w jaki sposób IronPDF wzbogaca te technologie, umożliwiając płynne tworzenie plików PDF. W połączeniu narzędzia te stanowią solidną podstawę do tworzenia aplikacji wymagających generowania i wysyłania plików PDF w czasie rzeczywistym, otwierając szerokie możliwości, od platform do wspólnej edycji dokumentów po pulpity nawigacyjne do raportowania na żywo. Zapraszamy na wycieczkę, podczas której odkryjemy, jak WebSockets, Node.js i IronPDF współpracują ze sobą we współczesnym tworzeniu stron internetowych.

Czym jest WebSocket Node.js?

Stos technologiczny znany jako WebSockets w Node.js umożliwia dwukierunkową komunikację w czasie rzeczywistym między klientem a serwerem przy użyciu pojedynczego, stałego połączenia TCP. WebSockets tworzą stałe, otwarte połączenie umożliwiające przesyłanie danych w obu kierunkach w dowolnym momencie, w przeciwieństwie do konwencjonalnych połączeń HTTP, które są bezstanowe i zazwyczaj wymagają wysyłania żądań i odbierania odpowiedzi.

Środowisko uruchomieniowe JavaScript po stronie serwera Node.js zapewnia stabilną podstawę do wdrażania serwerów WebSocket w dowolnym miejscu. Oferuje szereg bibliotek i modułów WebSocket, które ułatwiają konfigurację serwerów WebSocket i zarządzanie połączeniami WebSocket. Przekierowywanie komunikatów, przesyłanie danych do podłączonych klientów oraz zarządzanie połączeniami WebSocket to typowe funkcje występujące w tych bibliotekach.

Kluczowe cechy WebSockets

Komunikacja dwukierunkowa

Komunikacja pełnodupleksowa jest możliwa dzięki WebSockets, które umożliwiają jednoczesną transmisję danych w obu kierunkach między klientami a serwerami. Eliminuje to konieczność ciągłych wywołań serwera w celu wykonywania częstych zapytań HTTP i umożliwia interakcję oraz aktualizacje w czasie rzeczywistym.

Połączenie stałe

WebSockets tworzą stałe połączenie, które pozostaje otwarte tak długo, jak długo klient i serwer internetowy komunikują się ze sobą, w przeciwieństwie do konwencjonalnych połączeń HTTP, które są bezstanowe i mają ograniczony czas trwania. Zmniejsza to obciążenie związane z tworzeniem nowych połączeń przy każdej interakcji, co prowadzi do mniejszych opóźnień i szybszej komunikacji.

Wydajny transfer danych

WebSockets wykorzystują lekki protokół, który minimalizuje obciążenie i opóźnienia sieciowe oraz zmniejsza opóźnienia w transferze danych. Dzięki temu idealnie nadają się do zastosowań takich jak czat na żywo, gry, aplikacje do czatowania oraz platformy transakcyjne, które wymagają wysokowydajnej wymiany danych w czasie rzeczywistym.

Architektura sterowana zdarzeniami

Dzięki detektorom zdarzeń i wywołaniom zwrotnym programiści mogą przetwarzać przychodzące komunikaty, zdarzenia związane z połączeniami i awarie w sposób asynchroniczny w architekturze sterowanej zdarzeniami Node.js, która doskonale nadaje się do komunikacji WebSocket. W rezultacie przetwarzanie wielu równoczesnych połączeń i wysyłanie komunikatów może odbywać się efektywnie, bez zakłócania pętli zdarzeń serwera.

Skalowalność

Serwery WebSocket mogą z łatwością obsługiwać ogromną liczbę jednoczesnych połączeń dzięki nieblokującej, asynchronicznej naturze Node.js oraz obsłudze programowania sterowanego zdarzeniami. Ze względu na swoją skalowalność Node.js jest popularnym wyborem do tworzenia aplikacji opartych na WebSocketach, które wymagają aktualizacji w czasie rzeczywistym i obsługują wysoką współbieżność.

Kompatybilność międzyplatformowa

WebSocket to elastyczna metoda tworzenia aplikacji internetowych działających w czasie rzeczywistym, do których dostęp ma duża liczba użytkowników korzystających z różnych urządzeń i przeglądarek internetowych.

Integracja z istniejącą infrastrukturą

Biblioteki i moduły WebSocket dla Node.js ułatwiają programistom włączanie funkcji komunikacji w czasie rzeczywistym do swoich projektów poprzez integrację z istniejącymi aplikacjami i frameworkami Node.js.

Tworzenie i konfiguracja WebSockets

Przyjrzyjmy się, jak skonfigurować i utworzyć serwer WebSocket w Node.js.

Zainstaluj zależności

Zainstaluj bibliotekę ws, aby włączyć WebSockets w aplikacjach Node.js.

npm install ws
npm install prompt-sync
npm install ws
npm install prompt-sync
SHELL

Utwórz serwer WebSocket

Otwórz plik server.js, który utworzyłeś w edytorze kodu Visual Studio.

// Import the WebSocket module
const WebSocket = require('ws');

// Create and implement WebSockets
const wss = new WebSocket.Server({ port: 8080 });

// Event handler for when a client connects to the WebSocket server
wss.on('connection', (ws) => {
  console.log('Client connected');

  // Event handler for when the server receives a message from a client
  ws.on('message', (message) => {
    console.log(`Received message: ${message}`);

    // Echo the message back to the client
    ws.send(`Echo: ${message}`);
  });

  // Event handler for when a client disconnects from the WebSocket server
  ws.on('close', () => {
    console.log('Client disconnected');
  });
});

console.log('WebSocket server running on port 8080');

WebSockets Node.js js (Jak to działa dla programistów): Rysunek 1 – Dziennik konsoli

Utwórz klienta WebSocket

W przypadku klienta WebSocket utwórz plik o nazwie client.js i dodaj do niego poniższy kod.

const WebSocket = require('ws');
const prompt = require('prompt-sync')();

// WebSocket client connection
const ws = new WebSocket('ws://localhost:8080');

// Event handler for when the client successfully connects to the WebSocket server
ws.on('open', () => {
  console.log('Connected to WebSocket server');

  // Send user input messages to the server
  while (true) {
    const message = prompt('Enter message to send (or type "exit" to quit): ');
    if (message === 'exit') {
      ws.close();
      break;
    }

    ws.send(message);
  }
});

// Event handler for when the client receives a message from the WebSocket server
ws.on('message', (message) => {
  console.log(`Received message from server: ${message}`);
});

// Event handler for when the client connection is closed
ws.on('close', () => {
  console.log('Disconnected from WebSocket server');
});

WebSockets Node.js js (Jak to działa dla programistów): Rysunek 2 – Dziennik konsoli

Testowanie komunikacji WebSocket

Zarówno klient WebSocket, jak i prosty serwer HTTP są teraz gotowe do działania. Wysyłając komunikaty z serwera HTTP do klienta, na które serwer odpowie, można przetestować komunikację.

Integracja WebSockets z IronPDF for Node.js

Konfiguracja serwera WebSocket do komunikacji w czasie rzeczywistym oraz integracja IronPDF w celu tworzenia dynamicznych dokumentów PDF to pierwsze kroki w rozpoczęciu pracy z WebSockets w Node.js i IronPDF for Node.js do tworzenia plików PDF.

Czym jest IronPDF?

Aby tworzyć, edytować i konwertować pliki PDF, użyj potężnego pakietu IronPDF dla JavaScript. Pozwala to programistom na wykonywanie różnych operacji programistycznych związanych z plikami PDF, pracę z istniejącymi plikami PDF oraz konwersję HTML na PDF. IronPDF to skuteczne rozwiązanie dla aplikacji wymagających dynamicznego generowania i przetwarzania plików PDF, ponieważ zapewnia elastyczną i przyjazną dla użytkownika metodę tworzenia wysokiej jakości dokumentów PDF.

WebSockets Node.js js (Jak to działa dla programistów): Rysunek 3 – IronPDF for Node.js: Biblioteka PDF dla Node.js

Różne funkcje IronPDF

Oto niektóre z kluczowych funkcji IronPDF:

Konwersja HTML do PDF

IronPDF może służyć do przekształcania danych z plików HTML w dokumenty PDF. Umożliwia to tworzenie estetycznych publikacji w formacie PDF na podstawie treści internetowych przy użyciu nowoczesnych technologii HTML5, CSS3 i JavaScript.

Tworzenie i edycja plików PDF

Nowe dokumenty PDF generowane programowo mogą zawierać tekst, zdjęcia, tabele i inne treści. Za pomocą IronPDF można otwierać i edytować istniejące dokumenty PDF. Możesz zmieniać lub uzupełniać treść pliku PDF, a także usuwać poszczególne sekcje.

Zaawansowane formatowanie i układ

Aby dostosować styl zawartości przeglądarki użytkownika w plikach PDF, należy użyć CSS. Obejmuje to obsługę skomplikowanych układów, czcionek, kolorów i innych elementów projektu. Renderowanie materiałów HTML, które mogą być używane z JavaScript, pozwala tworzyć dynamiczną zawartość w plikach PDF.

Zainstaluj pakiet IronPDF

Zainstaluj wymagane pakiety IronPDF w Node.js za pomocą menedżera pakietów Node, aby włączyć funkcjonalność IronPDF.

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

Generuj pliki PDF za pomocą IronPDF i wysyłaj je przez połączenie WebSocket

const WebSocket = require('ws');
const IronPdf = require("@ironsoftware/ironpdf");
const document = IronPdf.PdfDocument;

// Create a WebSocket server
const wss = new WebSocket.Server({ port: 3000 });

// Event handler for when a client connects to the WebSocket server
wss.on('connection', (ws) => {
  console.log('A user connected');

  // Event handler for when the server receives a message from a client
  ws.on('message', async (message) => {
    console.log(`Message received: ${message}`);

    // Generate PDF using IronPDF
    const htmlContent = `<html><body><h1>${message}</h1></body></html>`;
    const pdf = await document.fromHtml(htmlContent);
    let buff = await pdf.saveAsBuffer();

    // Send the PDF data back to the client
    ws.send(buff);
  });

  // Event handler for when a client disconnects from the WebSocket server
  ws.on('close', () => {
    console.log('Client disconnected');
  });
});

console.log('WebSocket server running on port 3000');

W powyższym przykładzie kodu importujemy moduł IronPdf, który umożliwia tworzenie dokumentów PDF, oraz moduł ws, który zapewnia obsługę WebSocket w Node.js. Korzystając z klasy WebSocket.Server, tworzymy serwer WebSocket i przekazujemy port 3000 jako opcję konfiguracyjną. Gdy klient nawiązuje połączenie z serwerem WebSocket, tworzony jest detektor zdarzeń dla zdarzenia "connection". Rejestrujemy komunikat, aby pokazać, że klient połączył się w metodzie obsługi zdarzeń.

Zdarzenie "message", które jest wywoływane za każdym razem, gdy wiadomość od klienta dociera do serwera, jest zarejestrowane jako detektor zdarzeń. Wykorzystujemy IronPDF do tworzenia dokumentu PDF w zależności od treści otrzymanej wiadomości i rejestrujemy go w funkcji obsługi zdarzeń. Następnie wykorzystujemy połączenie WebSocket do przesłania danych binarnych utworzonego dokumentu PDF z powrotem na stronę klienta.

WebSockets Node.js js (Jak to działa dla programistów): Rysunek 4 – Dziennik konsoli

Zdarzenie "close", które jest generowane, gdy klient rozłącza się z gniazdem serwera WebSocket, jest rejestrowane jako detektor zdarzeń. W funkcji obsługi zdarzeń rejestrujemy komunikat wskazujący, że klient się rozłączył. Aby wskazać, że serwer WebSocket działa i jest gotowy do połączeń na porcie 3000, zapisujemy komunikat w konsoli. Poniżej znajduje się plik PDF wygenerowany przy użyciu IronPDF.

WebSockets Node.js js (Jak to działa dla programistów): Rysunek 5 – Plik PDF wygenerowany przy użyciu biblioteki IronPDF for Node.js

Serwer WebSocket jest konfigurowany za pomocą tego kodu po stronie serwera i nasłuchuje na porcie 3000 na przychodzące połączenia. Po otrzymaniu wiadomości od klienta serwer wykorzystuje IronPDF do utworzenia dokumentu PDF w zależności od treści przychodzącej wiadomości i zwraca dane PDF do klienta. Umożliwia to tworzenie i dostarczanie plików PDF w czasie rzeczywistym za pośrednictwem połączenia WebSocket.

Wnioski

W przypadku nowoczesnych aplikacji internetowych integracja IronPDF z WebSockets w Node.js stanowi skuteczne rozwiązanie do generowania i dystrybucji plików PDF w czasie rzeczywistym. Natychmiastowa wymiana danych jest możliwa dzięki WebSockets, które oferują płynny, dwukierunkowy kanał komunikacji między klientami a serwerami bez kosztów związanych z konwencjonalnymi zapytaniami HTTP. Dzięki architekturze opartej na zdarzeniach i nieblokującej Node.js jest potężną platformą do tworzenia aplikacji działających w czasie rzeczywistym i doskonale nadaje się do obsługi asynchronicznego charakteru WebSocketów.

Konfigurację tę wzbogaca IronPDF, który umożliwia dynamiczne tworzenie plików PDF na podstawie treści HTML, które można natychmiast dostosować do wymagań każdego klienta. WebSockets i IronPDF wraz z Node.js umożliwiają wydajne i skalowalne generowanie raportów, faktur i innych typów dokumentów w locie.

Możemy zagwarantować, że klienci i użytkownicy końcowi otrzymają bogate w funkcje, wysokiej jakości rozwiązania programowe dzięki integracji produktów IronPDF i Iron Software z Państwa środowiskiem programistycznym. Ponadto pomoże to w optymalizacji projektów i procesów. IronPDF oferuje szereg przykładów kodu oraz szczegółową dokumentację, aby pomóc programistom w rozpoczęciu pracy.

Ceny IronPDF zaczynają się od $799. Jest to zaufany partner w nowoczesnych projektach programistycznych dzięki obszernej dokumentacji, aktywnej społeczności i częstym aktualizacjom.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant posiada tytuł licencjata z informatyki z Uniwersytetu Miami i pracuje jako Full Stack WebOps Marketing Engineer w Iron Software. Już od młodych lat zainteresował się kodowaniem, postrzegając informatykę jako zarówno tajemniczą, jak i dostępną, co czyni ją doskonałym medium dla kreatywności ...

Czytaj więcej

Zespol wsparcia Iron

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