IRONSOFTWAREHOME
POMOC NODE

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

Curtis Chau
Curtis Chau
Updated: 20 czerwca 2026

Interaktywność w czasie rzeczywistym i dynamiczne tworzenie treści są obecnie niezbędnymi elementami w świecie nowoczesnego tworzenia stron internetowych, aby zapewnić atrakcyjne doświadczenia użytkownika. Natychmiastowe udostępnianie danych jest możliwe dzięki technologiom takim jak Socket.IO, które umożliwiają dwukierunkową komunikację w czasie rzeczywistym między klientami a serwerami. Tymczasem IronPDF zapewnia zaawansowane funkcje do tworzenia dokumentów PDF o doskonałej jakości na podstawie tekstu HTML w środowisku Node.js.

Po zintegrowaniu Socket.IO i IronPDF programiści mogą tworzyć aplikacje, które pozwalają użytkownikom na interakcję w czasie rzeczywistym i natychmiastowe obserwowanie efektów swoich działań. Przykłady tych aplikacji obejmują możliwość generowania i pobierania raportów w formacie PDF, faktur oraz innych dokumentów tworzonych dynamicznie. To potężne połączenie najlepiej sprawdza się w zastosowaniach związanych z e-commerce, systemami raportowania, platformami edukacyjnymi oraz innymi obszarami, w których potrzebne są aktualizacje w czasie rzeczywistym i szybka informacja zwrotna.

Aby pokazać, w jaki sposób technologie te można połączyć w celu zapewnienia płynnego i angażującego doświadczenia użytkownika, przyjrzymy się, jak skonfigurować aplikację Node.js wykorzystującą Socket.IO do komunikacji przez gniazda w czasie rzeczywistym oraz IronPDF dla Node.js do generowania plików PDF.

Czym jest Socket.IO Node.js JS?

Komunikacja w czasie rzeczywistym, dwukierunkowa i oparta na zdarzeniach między klientami a serwerami jest możliwa dzięki solidnej bibliotece JavaScript dla klientów Socket.IO. Zbudowany jako rozszerzenie WebSockets, oferuje dodatkowe funkcje i opcje awaryjne, aby zagwarantować niezawodną komunikację w różnych środowiskach. Do tworzenia dynamicznych aplikacji internetowych, które wymagają natychmiastowej wymiany danych, takich jak programy do czatu, narzędzia do pracy zespołowej, aktualizacje w czasie rzeczywistym i platformy gier, doskonałym rozwiązaniem jest biblioteka kliencka Socket.IO JavaScript.

Socket io node.js (Jak to działa dla programistów): Rysunek 1 - Socket.IO: Dwukierunkowa i niskoopóźnieniowa komunikacja dla każdej platformy.

Zalety Socket IO

Komunikacja w czasie rzeczywistym

Umożliwia natychmiastową komunikację w obu kierunkach między serwerem HTTP, klientem, aplikacją IO i serwerem IO. Idealnie nadaje się do aplikacji wymagających aktualizacji danych w czasie rzeczywistym, ponieważ gwarantuje dostarczanie wiadomości z niewielkim opóźnieniem.

Architektura sterowana zdarzeniami

Umożliwia programistom łatwe tworzenie niestandardowych zdarzeń i zarządzanie nimi dzięki wykorzystaniu paradygmatu opartego na zdarzeniach, co zmniejsza złożoność zarządzania skomplikowanymi interakcjami między klientem a serwerem.

Kompatybilność z różnymi przeglądarkami

Działa bez zarzutu na różnych systemach i w różnych przeglądarkach. Oferuje opcje awaryjne (takie jak rozszerzone odpytywanie) w sytuacjach, gdy WebSockets nie są obsługiwane.

Skalowalność

Obsługuje podłączenie kilku adapterów, w tym Redis, w celu horyzontalnego skalowania połączeń, umożliwiając aplikacji jednoczesne łączenie się z wieloma klientami i zarządzanie nimi. Dzięki konstrukcji zapewniającej efektywne wykorzystanie zasobów może być stosowany w aplikacjach o dużym natężeniu ruchu.

Automatyczne ponowne połączenie

Zapewnia odporność i niezawodność poprzez automatyczne próby ponownego nawiązania połączenia w przypadku jego utraty. Konfigurowalna logika ponownego łączenia kontroluje częstotliwość i charakter prób ponownego nawiązania połączenia.

Pomoc techniczna

Umożliwia organizowanie połączonych klientów w "pokojach" w celu łatwiejszego przesyłania komunikatów do podzbiorów gniazd lub konkretnych klientów. Obsługiwane jest dynamiczne wchodzenie i wychodzenie z pokoi, co sprawia, że rozwiązanie to jest przydatne w grach, aplikacjach do czatowania i narzędziach do współpracy.

Oprogramowanie pośredniczące

Umożliwia przetwarzanie danych zdarzeń i obsługę komunikatów przez funkcje oprogramowania pośredniczącego, zanim dotrą one do modułów obsługi. Przydatne do zadań takich jak walidacja danych, rejestrowanie komunikatów i uwierzytelnianie.

Bezpieczeństwo

Obsługuje szereg funkcji bezpieczeństwa, w tym ustawienia autoryzacji, uwierzytelniania i CORS (Cross-Origin Resource Sharing). Integruje się z protokołem HTTPS i innymi protokołami bezpieczeństwa, aby zagwarantować bezpieczne ścieżki komunikacji.

Debugowanie i rejestrowanie

Zintegrowane funkcje debugowania i rejestrowania ułatwiają diagnozowanie problemów i monitorowanie działania aplikacji. Regulowane poziomy logowania umożliwiają zarządzanie szczegółowością logów konsoli.

Utwórz i skonfiguruj Socket.io

Biblioteka Socket.IO umożliwia klientom i serwerom komunikację w czasie rzeczywistym, w obie strony i w oparciu o zdarzenia. Oto szczegółowy poradnik dotyczący konfiguracji klienta Socket.IO w programie Node.js.

Zainstaluj wymagane pakiety

Użyj npm, aby zainstalować pakiety Socket.IO i Express:

npm install express
npm install socket.io
SHELL

Utwórz serwer

Stwórz podstawowy serwer Express WebSocket z integracją Socket.IO, tworząc plik o nazwie server.js.

// Import necessary modules
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

// Create an Express application
const app = express();
const server = http.createServer(app);
const io = socketIo(server);

// Serve static files from the "public" directory
app.use(express.static('public'));

// Handle socket connection
io.on('connection', (socket) => {
    console.log('a user connected');

    // Handle custom event from client
    socket.on('message', (msg) => {
        console.log('message received: ' + msg);

        // Broadcast the message to all clients
        io.emit('message', msg);
    });

    // Handle disconnection
    socket.on('disconnect', () => {
        console.log('user disconnected');
    });
});

// Start the server on the specified port
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});
JavaScript

Socket io node.js (Jak to działa dla programistów): Rysunek 2 - Wyjście konsoli pokazujące, że serwer działa na porcie 3000, użytkownik się połączył, a otrzymana wiadomość to Hello Hi.

Utwórz klienta

Aby działać jako klient, utwórz katalog o nazwie public i plik o nazwie index.html wewnątrz niego.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Socket.IO Demo</title>
    <script src="/socket.io/socket.io.js"></script>
</head>
<body>
    <h1>Socket.IO Demo</h1>
    
    <!-- Input box for typing messages -->
    <input id="messageInput" type="text" placeholder="Type a message" />
    
    <!-- Button to send message -->
    <button onclick="sendMessage()">Send</button>
    
    <!-- Unordered list to display messages -->
    <ul id="messages"></ul>
    
    <script>
        // Initialize Socket.IO client
        const socket = io();

        // Listen for messages from the server
        socket.on('message', (msg) => {
            const li = document.createElement('li');
            li.textContent = msg;
            document.getElementById('messages').appendChild(li);
        });

        // Function to send a message to the server
        function sendMessage() {
            const msg = document.getElementById('messageInput').value;
            socket.emit('message', msg);
            document.getElementById('messageInput').value = '';
        }
    </script>
</body>
</html>
HTML

Socket io node.js (Jak to działa dla programistów): Rysunek 3 – Wynik: Strona demonstracyjna Socket.IO z polem tekstowym na wiadomość i przyciskiem "Wyślij". Wyświetlane są również dwie wiadomości wysłane do serwera: "Hello", "Hi".

Pierwsze kroki z IronPDF

Łącząc IronPDF do dynamicznego generowania plików PDF z Socket.IO w celu umożliwienia komunikacji w czasie rzeczywistym, możemy tworzyć interaktywne aplikacje internetowe, które szybko generują i udostępniają pliki PDF. Postępując zgodnie z tym przewodnikiem, dowiesz się, jak skonfigurować projekt Node.js wykorzystujący IronPDF i Socket.IO.

Czym jest IronPDF?

Skorzystaj z solidnej biblioteki IronPDF dla Node.js do tworzenia, modyfikowania i konwertowania plików PDF. Umożliwia to programistom pracę z istniejącymi plikami PDF, konwersję HTML do PDF oraz wykonywanie szeregu zadań programistycznych związanych z plikami PDF. IronPDF oferuje elastyczny i intuicyjny sposób tworzenia wysokiej jakości dokumentów PDF, co czyni go dobrym wyborem dla aplikacji wymagających dynamicznego generowania i przetwarzania plików PDF.

Socket io node.js (Jak to działa dla programistów): Rysunek 4 - IronPDF for Node.js: Biblioteka PDF dla Node.js

Najważniejsze funkcje IronPDF

Oto niektóre z kluczowych funkcji IronPDF:

1. Konwersja HTML do PDF

Konwertuj pliki HTML na dokumenty PDF za pomocą IronPDF. Umożliwia to renderowanie treści internetowych w estetyczne publikacje PDF przy użyciu najnowszych wersji HTML5, CSS3 i JavaScript.

2. Tworzenie i edycja plików PDF

Programowo dodawaj tekst, obrazy, tabele i inne treści do nowo utworzonych dokumentów PDF. IronPDF pozwala otwierać i edytować istniejące dokumenty PDF, dodając lub modyfikując treść w razie potrzeby.

3. Wyrafinowany układ i stylizacja

Użyj CSS do stylizacji plików PDF wyświetlanych w przeglądarce użytkownika, w tym obsługi złożonych układów, czcionek, kolorów i innych elementów projektu. Wykorzystanie JavaScriptu do renderowania treści HTML pozwala na dynamiczne dodawanie treści do plików PDF.

Instalacja IronPDF

Zainstaluj wymagany pakiet IronPDF w Node.js za pomocą menedżera pakietów Node, aby włączyć funkcjonalność IronPDF. Uruchom następujące polecenie:

npm i @ironsoftware/ironpdf

Kod klienta

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="https://cdn.socket.io/4.7.5/socket.io.min.js"></script>
  <title>WebSocket Client</title>
</head>
<body>
  <h1>PDF Generation with Socket.IO and IronPDF</h1>
  
  <!-- Input for PDF Title -->
  <input id="Title" type="text" placeholder="Enter PDF Title" />
  
  <!-- Input for PDF Content -->
  <textarea id="content" placeholder="Enter PDF Content"></textarea>
  
  <!-- Button to send message -->
  <button onclick="sendMessage()">Send</button>
  
  <!-- Unordered list to display messages -->
  <ul id="messages"></ul>

  <script>
    const socket = io('http://localhost:3000');

    // Listen for messages from the server
    socket.on('message', (msg) => {
        const li = document.createElement('li');
        li.textContent = msg;
        document.getElementById('messages').appendChild(li);
    });

    // Function to send a message to the server and generate a PDF
    function sendMessage() {
      const ITitle = document.getElementById('Title');
      const IContent = document.getElementById('content');
      const message = {
        title: ITitle.value,
        content: IContent.value
      };

      // Emit message event to the server
      socket.emit('generatePDF', message);

      // Clear input fields
      ITitle.value = '';
      IContent.value = '';
    }
  </script>
</body>
</html>
HTML

Socket io node.js (Jak to działa dla programistów): Rysunek 5 - Wprowadź tekst dla Danych i Tytułu i kliknij przycisk Wyślij, aby przesłać wiadomość do serwera.

Wyślij wiadomość i wygeneruj plik PDF za pomocą IronPDF

Przyjrzyjmy się bliżej kodowi, aby zobaczyć, w jaki sposób Socket.IO i IronPDF są wykorzystywane do natychmiastowego tworzenia plików PDF w aplikacji Node.js.

// Import necessary modules
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
const IronPdf = require('@ironsoftware/ironpdf');

// Create an Express application
const app = express();
const server = http.createServer(app);
const io = socketIo(server);
const document = IronPdf.PdfDocument;

// Serve static files from the public directory
app.use(express.static('public'));

// Handle socket connection
io.on('connection', (socket) => {
    console.log('a user connected');

    // Handle PDF generation request
    socket.on('generatePDF', async (data) => {
        try {
            const pdfPath = await generatePDF(data);
            socket.emit('pdfGenerated', { pdfUrl: pdfPath });
        } catch (error) {
            socket.emit('error', error.message);
        }
    });

    // Handle disconnection
    socket.on('disconnect', () => {
        console.log('user disconnected');
    });
});

// Function to generate a PDF from provided HTML content
const generatePDF = async (data) => {
    console.log('pdf generation started');
    const htmlContent = `<h1>${data.title}</h1><p>${data.content}</p>`;
    console.log(`Received message into HTML content: ${htmlContent}`);
    const pdf = await document.fromHtml(htmlContent);
    const filePath = `./public/pdfs/${Date.now()}.pdf`;
    await pdf.saveAs(filePath);
    console.log('pdf generation completed');
    return filePath.replace('./public', '');
};

// Start the server on the specified port
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});
JavaScript

Powyższy kod wykorzystuje bibliotekę IronPDF do dynamicznego tworzenia plików PDF oraz bibliotekę Socket.IO do komunikacji w czasie rzeczywistym w aplikacji Node.js. Na początek w kodzie po stronie serwera importowane są wymagane moduły, takie jak socket.io do komunikacji w czasie rzeczywistym, IronPDF do produkcji PDF, serwer HTTP do generowania komunikacji klient-serwer i Express do budowy serwera internetowego. Pliki statyczne są tworzone w katalogu publicznym i obsługiwane przez aplikację Express. Następnie serwer obsługuje niestandardowe zdarzenie generatePDF, nasłuchując połączeń Socket.IO. Serwer wykorzystuje IronPDF do tworzenia pliku PDF z treści HTML na podstawie danych dostarczonych przez klienta po otrzymaniu tego zdarzenia. Plik PDF jest następnie zapisywany w systemie plików, a strona klienta otrzymuje z serwera zdarzenie wygenerowane przez plik PDF wraz ze ścieżką do utworzonego pliku PDF.

Socket io node.js (Jak to działa dla programistów): Rysunek 6 - Log konsoli

Prosty formularz jest konfigurowany zarówno po stronie serwera, jak i klienta za pomocą pliku HTML w celu zebrania tytułu i treści. Po przesłaniu formularz przestaje wykonywać domyślne działanie związane z przesłaniem i wysyła dane formularza wraz ze zdarzeniem generatePDF na serwer.

Socket io node.js (Jak to działa dla programistów): Rysunek 7 - Wyjściowy PDF utworzony przy użyciu IronPDF.

Dodatkowo klient wyświetla link do pobrania po wysłuchaniu zdarzenia wygenerowanego przez plik PDF w celu uzyskania adresu URL utworzonego pliku PDF. Ponadto klient monitoruje wszelkie zdarzenia błędów i w przypadku ich wystąpienia wyświetla alert wraz z komunikatem o błędzie. Ta integracja pokazuje, jak używać Socket.IO i IronPDF do tworzenia responsywnej aplikacji internetowej, która pozwala użytkownikom tworzyć i odbierać pliki PDF w czasie rzeczywistym.

Wnioski

Skutecznym rozwiązaniem do interaktywnego tworzenia plików PDF w czasie rzeczywistym w aplikacjach Node.js jest integracja klienta Socket.IO z IronPDF. Programiści mogą tworzyć responsywne aplikacje, które zapewniają konsumentom szybką informację zwrotną dzięki wykorzystaniu możliwości komunikacji w czasie rzeczywistym klienta Socket.IO, co może znacznie poprawić zarówno działanie serwera, jak i komfort użytkowania. Połączenie z IronPDF pozwala na dynamiczne tworzenie wysokiej jakości dokumentów PDF na podstawie treści HTML. Dzięki temu idealnie nadaje się do aplikacji takich jak systemy zarządzania treścią, narzędzia do raportowania i systemy fakturowania, które wymagają szybkiego generowania dokumentów.

Ta konfiguracja ilustruje, w jaki sposób tworzenie treści dynamicznych i komunikacja w czasie rzeczywistym współdziałają ze sobą. Pokazuje, w jaki sposób najnowocześniejsze technologie internetowe mogą być płynnie wykorzystywane do dostarczania niezawodnych i skutecznych rozwiązań trudnych problemów. Dzięki IronPDF, który zajmuje się generowaniem plików PDF, oraz Socket.IO, który obsługuje transmisję danych w czasie rzeczywistym, programiści mogą skupić się na tworzeniu bogatych w funkcje aplikacji internetowych, które zapewniają użytkownikom zauważalne i natychmiastowe wyniki. Metoda ta stwarza nowe możliwości tworzenia interaktywnych i opartych na danych aplikacji, a także zwiększa funkcjonalność i użyteczność aplikacji internetowych.

Włączając produkty IronPDF i Iron Software do swojego stosu programistycznego, możemy zapewnić klientom i użytkownikom końcowym bogate w funkcje, wysokiej klasy rozwiązania programowe. Dodatkowo przyczyni się to do optymalizacji projektów i procesów.

IronPDF oferuje darmową wersję próbną zaczynającą się od $999, co czyni ich niezawodnymi partnerami dla nowoczesnych projektów programistycznych.

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ęczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta