Altbilgi içeriğine atla
NODE YARDıM

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır)

SockJS ve IronPDF, online uygulamalar oluştururken farklı ama tamamlayıcı rollere sahiptir. SockJS adlı bir JavaScript paketi, HTTP API aracılığıyla tüm sunucu istemci iletişimini WebSockets benzeri ile sağlar. Sohbet odaları, canlı haberler ve ekip çalışması araçları gibi uygulamaların kullanılmasını sağlayarak web tarayıcıları ve sunucular arasında gerçek zamanlı ve olaylar üzerinden iletişim sağlar. Ancak, Node.js ortamlarında, IronPDF PDF belgelerinin programatik olarak üretilmesi ve değiştirilmesi için belirtilmiş güçlü bir JavaScript kütüphanesidir.

IronPDF, PDF belgelerinin dinamik olarak oluşturulmasına ve yönetilmesine olanak tanırken, SockJS istemcisi çevrimiçi uygulamalarda gerçek zamanlı veri alışverişi ve işbirliği özelliklerini bir çapraz etki alanı iletişim kanalı aracılığıyla yönetir. SockJS sunucu biri ile IronPDF entegrasyonu, geliştiricilerin dinamik verilere veya kullanıcı etkileşimlerine dayalı olarak kolayca PDF belgeleri oluşturmalarını ve sunmalarını sağlarken, uygulamalarını gerçek zamanlı değişikliklerle geliştirmelerine olanak tanır. Bu kombinasyonla, geliştiriciler gerçek zamanlı iletişim ve dinamik PDF oluşturma kullanarak belge yoğun uygulamalar ve işbirliğine dayalı platformlar gibi çeşitli kullanım durumlarını destekleyen sofistike çevrimiçi uygulamalar tasarlayabilirler.

SockJS NPM Nedir?

SockJS, web istemcileri ve sunucuları arasındaki gerçek zamanlı, çift yönlü iletişimi kolaylaştıran bir tarayıcı tarafı JavaScript kütüphanesidir. WebSocket'i soyutlar ve HTTP uzun sorgulama ve XHR akışı gibi alternatif taşıma protokollerine geri dönüş mekanizması sunarak, çeşitli web tarayıcıları ve ortamları arasında uyumluluğu sağlar. Bağlantı açılması, mesaj alınması ve kapanması gibi olayların bağlantı kurulmasını ve yönetilmesini sağlayan basit bir JavaScript API sağlar. Ek olarak, SockJS, geliştirme ve üretim ortamları için esnek olmasını sağlayarak test ve hata ayıklama amaçları için bir komut satırı istemcisi içerir. Genel olarak, SockJS JavaScript nesnesi, web uygulamalarında gerçek zamanlı özelliklerin uygulanmasını basitleştirerek ölçeklenebilir ve yanıt veren iletişim kanallarını destekler.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - SockJS

SockJS'in Anahtar Özellikleri

Çapraz Tarayıcı Uyumluluğu

SockJS, birçok web tarayıcısı ve ortamı boyunca tutarlı davranış ve işlevsellik sağlar.

Geri Dönüş Mekanizması

WebSocket bağlantıları kullanılamadığında veya başarısız olduğunda, SockJS, HTTP uzun sorgulama, XHR akışı veya hatta JSONP sorgulama gibi diğer taşıma protokollerine şeffaf bir şekilde geçebilir.

Gerçek Zamanlı İletişim

Genellikle Node.js veya diğer sunucu tarafı teknolojileri kullanan sunucu tarafı uygulamaların ve web tarayıcılarında çalışan istemci tarafı JavaScript uygulamaların gerçek zamanlı ve olay odaklı biçimde iletişim kurmasına olanak tanır.

Kullanım Kolaylığı

SockJS, WebSocket'e eşdeğer basit bir API sunduğu için, geliştiriciler projelerine kolayca dahil edip kullanabilir.

Ölçeklenebilirlik

Birden fazla taşıma protokolü ve geri dönüş tekniklerini destekleyerek, SockJS, çok sayıda eş zamanlı bağlantıyı ve çeşitli ağ durumlarını yönlendirebilen ölçeklenebilir uygulamalar geliştirmeyi kolaylaştırır.

Entegrasyon Kolaylığı

Geliştiricilerin web uygulamalarına komplike seviyede düşük ağ programlaması gerektirmeden kolayca dahil edebileceği basit bir API sağlayarak gerçek zamanlı özelliklerin uygulanmasını kolaylaştırır.

Taşıma Protokolü Soyutlama:

SockJS, WebSocket, HTTP uzun sorgulama ve diğer altta yatan taşıma protokollerini soyutlar. Adaptasyon yeteneği, WebSocket bağlantılarının kısıtlandığı veya kullanılamadığı durumlarda bile güvenilir iletişimin sağlanmasını garanti eder.

SockJS Oluşturma ve Yapılandırma

Genellikle çevrimiçi bir uygulamada gerçek zamanlı iletişim kurmak ve yapılandırmak için SockJS'yi istemci tarafında (web tarayıcınızda) ve sunucu tarafında (Node.js gibi bir tarayıcı veya sunucu frameworkü kullanarak) ayarlamanız gerekir. SockJS oluşturma ve yapılandırmayı içeren basit bir rehber aşağıda verilmiştir:

SockJS Kurulumu Yap

SockJS, NPM kullanılarak veya doğrudan bir CDN yoluyla dahil edilerek kurulabilir:

npm install sockjs-client
npm install sockjs-client
SHELL

SockJS'i HTML'ye Dahil Et

Oluşturuğunuz HTML dosyasına SockJS JavaScript kütüphanesini dahil edin:

<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
HTML

SockJS Bağlantısını Başlat

JavaScript dosyanızda (app.js veya benzeri) bir SockJS örneği oluşturun ve sunucunuza bağlanın:

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>SockJS + IronPDF Example</title>
  </head>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
      // Initialize SockJS connection
      const sock = new SockJS("http://localhost:3000/socket");

      // Event handlers
      sock.onopen = function () {
        console.log("Connection opened");
      };
      sock.onmessage = function (e) {
        console.log("Message received:", e.data);
      };
      sock.onclose = function () {
        console.log("Connection closed");
      };

      // Example function to send a message
      function sendMessage(message) {
        sock.send(message);
      }
    </script>
    Enter the Message:
  </body>
</html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>SockJS + IronPDF Example</title>
  </head>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
      // Initialize SockJS connection
      const sock = new SockJS("http://localhost:3000/socket");

      // Event handlers
      sock.onopen = function () {
        console.log("Connection opened");
      };
      sock.onmessage = function (e) {
        console.log("Message received:", e.data);
      };
      sock.onclose = function () {
        console.log("Connection closed");
      };

      // Example function to send a message
      function sendMessage(message) {
        sock.send(message);
      }
    </script>
    Enter the Message:
  </body>
</html>
HTML

Sunucu tarafı WebSocket uç noktanızın URL'si, "http://localhost:3000/socket" yerine kullanılmalıdır.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - SockJS Bağlantı Çıkışı

Sunucu Tarafı Kurulumu

SockJS-Node Kurulumunu Yap

SockJS-Node paketini kurmak için npm kullanın:

npm install sockjs
npm install sockjs
SHELL

SockJS Sunucusunu Yapılandır

Node.js sunucunuzda SockJS'yi yapılandırın:

// Import necessary modules
const http = require('http');
const sockjs = require('sockjs');

// Create a SockJS server
const sockjsServer = sockjs.createServer();

// Attach the server to an HTTP server instance
const server = http.createServer();

// Install SockJS handlers
sockjsServer.installHandlers(server, { prefix: '/socket' });

// Define SockJS event handlers
sockjsServer.on('connection', function(conn) {
    console.log('Client connected');
    conn.on('data', function(message) {
        console.log('Received message:', message);
        // Handle incoming messages from client
    });
    conn.on('close', function() {
        console.log('Client disconnected');
    });
});

// Start the server
const PORT = 3000;
server.listen(PORT, function() {
    console.log(`Server listening on port ${PORT}`);
});
// Import necessary modules
const http = require('http');
const sockjs = require('sockjs');

// Create a SockJS server
const sockjsServer = sockjs.createServer();

// Attach the server to an HTTP server instance
const server = http.createServer();

// Install SockJS handlers
sockjsServer.installHandlers(server, { prefix: '/socket' });

// Define SockJS event handlers
sockjsServer.on('connection', function(conn) {
    console.log('Client connected');
    conn.on('data', function(message) {
        console.log('Received message:', message);
        // Handle incoming messages from client
    });
    conn.on('close', function() {
        console.log('Client disconnected');
    });
});

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

Sunucu tarafı kodunun, uygulamanızın gereksinimlerini karşılamak ve zaten sahip olduğunuz sunucu çerçevesi veya yapılandırması ile çalışmasını sağlamak için özelleştirildiğinden emin olun.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - SockJS Sunucu uyumlu yapılandırma çıktısı

Çapraz Köken İstekleri (CORS): Sunucunuz ve istemciniz ayrı alan adlarında bulunuyorsa, sunucunuzun CORS ayarlarını etkili bir şekilde yönetmesini sağlayın.

Hata Yönetimi: Uygulamanızın spesifikasyonlarına uygun olarak hata yönetimi ve güvenlik önlemleri (örneğin kimlik doğrulama ve yetkilendirme) uygulayın.

Dağıtım: Güvenli bağlantılar için HTTPS ayarını ve SockJS ile sunucunuzu, dağıtım ortamları için yapılandırın.

Bu yapılandırma, bir web istemcisi ve bir web sunucusu arasında SockJS kullanarak gerçek zamanlı iletişim kurulması için temel bir zemin sağlar. Belirli uygulamanızın gereksinimlerine ve mimarisine bağlı olarak ayarlamalar gerekebilir.

Başlarken

SockJS'un gerçek zamanlı iletişim yeteneklerini kullanıp IronPDF ile dinamik PDF oluşturulmasını entegre eden bir web uygulaması kurmak, SockJS ve IronPDF ile başlamak için ilk adımdır. İşte başlangıç ​​noktası rehberi:

IronPDF Nedir?

HTML verilerini son derece yüksek kaliteli PDF dosyalarına dönüştürmek için tasarlanmış IronPDF adlı güçlü bir Node.js aracıdır. Orijinal web içeriğinden ödün vermeden, HTML, CSS ve diğer JavaScript dosyalarını doğru biçimlendirilmiş PDF dosyalarına dönüştürme sürecini hızlandırır. Bu, raporlar, faturalar ve sertifikalar gibi dinamik, yazdırılabilir belgeler oluşturmaları gereken web uygulamaları için çok kullanışlı bir araçtır.

Özelleştirilebilir sayfa ayarları, başlıklar, altbilgiler ve yazı tipleri ile resimler ekleme yeteneği, IronPDF'nin sunduğu olanaklardan sadece birkaçıdır. Her test PDF çıktısının gereklilikleri karşıladığına emin olmak için karmaşık düzenleri ve stilleri işleyebilir. Ayrıca, IronPDF, dinamik ve etkileşimli içeriğin hassas şekilde işlenmesine olanak sağlamak için HTML içindeki JavaScript çalıştırmasını yönetir.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - IronPDF

IronPDF Özellikleri

1. HTML'den PDF Oluşturma

JavaScript, HTML, ve CSS'i PDF'e dönüştür. Medya sorguları ve duyarlı tasarım gibi modern web standartlarını destekler. HTML ve CSS ile PDF raporları, faturaları ve belgeleri dinamik olarak süslemek için kullanışlıdır.

2. PDF Düzenleme

Mevcut PDF'lere metin, resimler ve diğer içerikler eklenebilir. PDF dosyalarından metin ve resim çıkarmak. Birden fazla PDF'yi tek bir dosyada birleştirin. PDF dosyalarını birden fazla ayrı belgeye bölün. Filigranlar, açıklamalar, başlıklar ve altbilgiler ekleyin.

3. Performans ve Güvenilirlik

Sanayi ortamlarında aranan yüksek performans ve güvenilirlik tasarım özellikleridir. Büyük belge setlerini kolaylıkla yönetir.

IronPDF Kurulumu

Node.js projelerinde PDF'lerle çalışmak için gerekli araçları elde etmek üzere IronPDF paketini kurun. Aşağıdaki komutu çalıştırın:

npm i @ironsoftware/ironpdf

SockJS ile IronPDF'i Birleştirme

Node.js sunucunuzda PDF oluşturma taleplerini işlemek ve istemci bağlantılarını yönetmek için SockJS'yi yapılandırın:

// server.js

// Import necessary modules
const http = require("http");
const sockjs = require("sockjs");
const IronPdf = require("@ironsoftware/ironpdf");

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

// Create a SockJS server
const sockjsServer = sockjs.createServer();

// Attach the SockJS server to an HTTP server instance
const server = http.createServer();
sockjsServer.installHandlers(server, { prefix: "/socket" });

// Handle SockJS connections and messages
sockjsServer.on("connection", function (conn) {
  console.log("Client connected");

  // Handle incoming messages (PDF generation requests)
  conn.on("data", async function(message) {
    console.log("Received message:", message);

    // Generate PDF using IronPDF
    let pdfdata = await generatePdf(message);

    // Send generated PDF data back to client
    conn.write(pdfdata);
  });

  conn.on("close", function () {
    console.log("Client disconnected");
  });
});

// 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}`);
});
// server.js

// Import necessary modules
const http = require("http");
const sockjs = require("sockjs");
const IronPdf = require("@ironsoftware/ironpdf");

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

// Create a SockJS server
const sockjsServer = sockjs.createServer();

// Attach the SockJS server to an HTTP server instance
const server = http.createServer();
sockjsServer.installHandlers(server, { prefix: "/socket" });

// Handle SockJS connections and messages
sockjsServer.on("connection", function (conn) {
  console.log("Client connected");

  // Handle incoming messages (PDF generation requests)
  conn.on("data", async function(message) {
    console.log("Received message:", message);

    // Generate PDF using IronPDF
    let pdfdata = await generatePdf(message);

    // Send generated PDF data back to client
    conn.write(pdfdata);
  });

  conn.on("close", function () {
    console.log("Client disconnected");
  });
});

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

İstemci Tarafı Kurulum

İstemci tarafında SockJS'yi sunucu ile etkileşime girmek ve PDF oluşturma taleplerini göndermek için yapılandırın.


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

    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
        // Initialize SockJS connection
        const sock = new SockJS('http://localhost:3000/socket');

        // Event handlers
        sock.onopen = function() {
            console.log('Connection opened');
        };

        sock.onmessage = function(e) {
            console.log('PDF received');
            // Example: Display or download PDF received from server
            displayPdf(e.data);
        };

        sock.onclose = function() {
            console.log('Connection closed');
        };

        // Function to generate PDF
        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
            sock.send(htmlContent);
        }

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

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

    <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
    <script>
        // Initialize SockJS connection
        const sock = new SockJS('http://localhost:3000/socket');

        // Event handlers
        sock.onopen = function() {
            console.log('Connection opened');
        };

        sock.onmessage = function(e) {
            console.log('PDF received');
            // Example: Display or download PDF received from server
            displayPdf(e.data);
        };

        sock.onclose = function() {
            console.log('Connection closed');
        };

        // Function to generate PDF
        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
            sock.send(htmlContent);
        }

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

Sunucu Tarafı: Node.js sunucu, bir SockJS sunucusunu (sockjsServer) yapılandırır ve /socket yolunda bağlantıları dinler. Gelen mesajları (PDF oluşturma taleplerini) işlemek için generatePdf() fonksiyonunu çağırmak amacıyla IronPDF (IronPdf.PdfDocument) kullanır. PDF'yi oluşturduktan sonra, base64 kodlu PDF verilerini istemciye geri göndermek için SockJS bağlantısını kullanır.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - SockJS İstemci Kaynak Kodu Çıkışı

İstemci Tarafı: İstemci, bir SockJS bağlantısı (sock) aracılığıyla sunucuya bağlanır ve onopen, onmessage ve onclose gibi olayları dinler. Kullanıcı, "PDF Oluştur" butonuna tıkladığında HTML içeriğini (htmlContent) sunucuya PDF oluşturmak için göndermek üzere sock.send(htmlContent) kullanır. Sunucudan (sock.onmessage) PDF verilerini aldıktan sonra PDF'yi gösterir veya indirir.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - İstemci Tarafı Çıkışı

Koddan elde edilen çıktı aşağıdadır.

sockjs NPM (Geliştiriciler İçin Nasıl Çalışır): Şekil 7 - PDF Çıkışı

Sonuç

Web uygulama geliştirme, gerçek zamanlı iletişim için SockJS'nin ve dinamik PDF üretimi için IronPDF'in kullanılmasıyla güçlü bir sinerji yaratır. SockJS ile, istemci ve sunucular arasında çift yönlü iletişim kolaylaşır, bu da etkileşimli işbirliği ve gerçek zamanlı güncellemeler gibi özellikleri etkinleştirir. Bununla birlikte, IronPDF, programcıların PDF belgelerini yaratmalarına ve değiştirmelerine olanak tanır. Hatta HTML metnini dinamik olarak PDF'ye dönüştürebilir.

Karmaşık web uygulamaları, kullanıcı girişi veya gerçek zamanlı veri güncellemelerine tepki olarak anında PDF belgeleri oluşturabilir, bu teknolojilerin entegrasyonu sayesinde. Gerçek zamanlı belge oluşturma, grup düzenleme veya interaktif raporlama işlevselliği gerektiren uygulamalar için bu entegrasyon özellikle yardımcı olacaktır. Her ciddi SockJS kullanıcısının gereksinimlerini karşılamak için SockJS'un anlık güncellemeleri ve IronPDF'in dinamik PDF oluşturmasını kullanarak geliştiriciler, kullanıcı deneyimini optimize edebilir, iş akışlarını optimize edebilir ve bir dizi iş gereksinimini karşılayan dayanıklı çözümler sağlayabilir.

IronPDF kullanarak OCR, barkod tarama, PDF üretimi, Excel etkileşimi ve daha birçok özelliği ekleyerek Node.js uygulama geliştirme araç setinizin kullanımını artırabiliriz. Iron Software'ın yüksek derecede yapılandırılabilir sistemleri ve topluluk destekli eklentileri geniş kütüphanesi ile geliştiricilerin özellikleri ve web uygulamalarını daha hızlı bir şekilde geliştirmelerini sağlar.

Geliştiriciler, IronPDF'nin sayısız özelliğini bir ücretsiz deneme lisansı ve şirketin sağladığı çeşitli kod örnekleri ile satın almadan önce kullanılabilir. IronPDF'in sürekli lisanslaması hakkında daha fazla bilgi için lisans sayfasını ziyaret edin. IronPDF'i kullanmaya başlama hakkında daha fazla talimat için dokümantasyon sayfasını ziyaret edin.

Darrius Serrant
Tam Yığın Yazılım Mühendisi (WebOps)

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimi alanında Lisans Derecesine sahip ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışıyor. Genç yaşlardan itibaren kodlamaya çekildi, bilgisayar bilimi hem gizemli hem de erişilebilir olarak görüldü ve bu özellik, yaratıcılık ...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara