sockjs NPM (Geliştiriciler İçin Nasıl Çalışır)
SockJS ve IronPDF, çevrimiçi uygulamalar oluşturulurken farklı fakat tamamlayıcı rollere sahiptir. SockJS adlı bir JavaScript paketi, doğrudan HTTP API sunar, bu da WebSockets'e benzer bir istemci-sunucu iletişimi sağlar. Bu, sohbet odaları, canlı haberler ve iş birliği araçları gibi uygulamaların kullanımı için web tarayıcıları ve sunucular arasında gerçek zamanlı ve olay bazlı iletişime izin verir. Bununla birlikte, Node.js ortamlarında IronPDF, programatik bir şekilde PDF belgeleri üretmek ve düzenlemek için güçlü bir JavaScript kütüphanesidir.
IronPDF, dinamik olarak PDF belgeleri oluşturup yönetmek sağlarken, SockJS istemcisi çevrimiçi uygulamalarda gerçek zamanlı veri değişimi ve iş birliği özelliklerini bir çapraz alan iletişim kanalı aracılığıyla yönetir. SockJS sunucu karşıtını IronPDF ile entegre ederek, geliştiriciler dinamik veri veya kullanıcı etkileşimlerine dayalı olarak kolayca PDF belgeleri oluşturabilir ve sunarken uygulamalarına gerçek zamanlı değişiklikler ekleyebilirler. Bu kombinasyonla, geliştiriciler hem gerçek zamanlı iletişimi hem de dinamik PDF oluşturmayı kullanarak belge yoğun uygulamalar ve iş birliğini destekleyen platformlar gibi çeşitli vaka senaryolarını destekleyen sofistike çevrimiçi uygulamalar tasarlayabilir.
SockJS NPM Nedir?
SockJS, web müşterileri ve sunucuları arasında gerçek zamanlı, çift yönlü iletişimi kolaylaştıran tarayıcı tarafı bir JavaScript kütüphanesidir. WebSocket'i soyutlar ve HTTP uzun-sorgulama ve XHR akışı gibi alternatif taşıma protokollerine alternatif bir mekanizma sunar, çeşitli web tarayıcıları ve ortamlarla uyumluluğu sağlar. Bağlantı açılışı, mesaj alımı ve kapanış gibi olayların yönetilmesine ve bağlantıların kurulmasına yönelik basit bir JavaScript API sunar. Ayrıca, SockJS, geliştirme ve üretim ortamları için onu çok yönlü hale getirerek test ve hata ayıklama amaçlı bir komut satırı istemcisi içerir. Genel olarak, SockJS JavaScript nesnesi, ölçeklenebilir ve duyarlı iletişim kanallarını destekleyerek web uygulamalarında gerçek zamanlı özelliklerin uygulanmasını basitleştirir.

SockJS'nin Ana Özellikleri
Tarayıcılar Arası Uyumluluk
SockJS, birçok web tarayıcısı ve ortamda tutarlı davranış ve işlevsellik sağlar.
Geri Dönüş Mekanizması
WebSocket bağlantıları kullanılamaz veya başarısız olursa, SockJS, HTTP uzun yoklama, XHR akış veya hatta JSONP yoklama gibi diğer taşıma protokollerine şeffaf bir şekilde geçebilir.
Gerçek Zamanlı İletişim
Sunucu tarafı uygulamaları (genellikle Node.js veya diğer sunucu tarafı teknolojilerini kullanarak) ve istemci tarafı JavaScript uygulamaları (web tarayıcılarında çalışan) gerçek zamanlı ve olay güdümlü bir şekilde iletişim kurabilir.
Kullanım Kolaylığı
SockJS, WebSocket'e denk bir basit API sunduğu için, geliştiriciler projelerine kolayca ekleyebilir ve kullanabilir.
Ölçeklenebilirlik
SockJS, birden fazla taşıma protokolünü ve geri dönüş tekniklerini destekleyerek, çok sayıda eşzamanlı bağlantıyı ve çeşitli ağ durumlarını yönetebilen ölçeklenebilir uygulamaların geliştirilmesini kolaylaştırır.
Entegrasyon Kolaylığı
Geliştiricilerin karmaşık düşük seviyeli ağ programlamasına ihtiyaç duymadan web uygulamalarına entegre 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 yoklama ve diğer temel taşıma protokollerini soyutlar. Uyarlanabilirliği sayesinde, WebSocket bağlantılarının kısıtlandığı veya kullanılamadığı durumlarda bile güvenilir iletişim sağlanır.
SockJS'yi Oluşturun ve Yapılandırın
Çevrimiçi bir uygulamada gerçek zamanlı iletişim için SockJS'yi oluşturmak ve yapılandırmak için genellikle istemci tarafında (web tarayıcınızda) ve sunucu tarafında (Node.js gibi bir tarayıcı veya sunucu çerçevesi kullanarak) SockJS'yi kurmanız gerekir. Aşağıda, SockJS'yi oluşturma ve yapılandırma için temel bir kılavuz bulunmaktadır:
SockJS'yi Yükleyin
SockJS, NPM kullanılarak veya doğrudan bir CDN üzerinden eklenerek yüklenebilir:
npm install sockjs-clientnpm install sockjs-clientSockJS'yi HTML'nize Dahil Edin
Oluşturduğunuz HTML dosyasına SockJS JavaScript kütüphanesini ekleyin:
<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>SockJS Bağlantısını Başlatın
JavaScript dosyanızda (app.js veya benzeri bir şeyde) 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>Sunucu tarafı WebSocket uç noktanızın URL'si, "http://localhost:3000/socket" yerine kullanılmalıdır.

Sunucu Tarafı Kurulumu
SockJS-Node'u Yükleyin
SockJS-Node paketini yüklemek için npm kullanın:
npm install sockjsnpm install sockjsSockJS Sunucusunu Yapılandırın
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}`);
});Sunucu tarafı kodunun, uygulamanızın gereksinimlerini karşılayacak şekilde özelleştirildiğinden ve halihazırda sahip olduğunuz sunucu çerçevesi veya yapılandırması ile uyumlu olduğundan emin olun.

Alanlar Arası İstekler (CORS): Sunucunuz ve istemciniz farklı alanlarda ise, sunucunuzun CORS ayarlarını etkili bir şekilde yönettiğinden emin olun.
Hata Yönetimi: Uygulamanızın gereksinimlerine göre hata yönetimi ve güvenlik önlemleri (kimlik doğrulama ve yetkilendirme gibi) uygulayın.
Dağıtım: Güvenli bağlantılar için HTTPS'yi ayarlayın ve SockJS'yi ve sunucunuzu dağıtım ortamları için yapılandırın.
Bu yapılandırma, bir web istemcisi ile bir web sunucusu arasında SockJS kullanarak gerçek zamanlı iletişim kurmak için temel bir temel sağlar. Belirli uygulamanızın gereksinimlerine ve mimarisine bağlı olarak ayarlamalar gerekebilir.
Başlarken
SockJS'nin gerçek zamanlı iletişim yeteneklerinden yararlanan ve dinamik PDF oluşturma için IronPDF'yi entegre eden bir web uygulaması kurmak, SockJS ve IronPDF ile başlamanın ilk adımıdır. İşte başlangıç için bir kılavuz:
IronPDF nedir?
IronPDF olarak adlandırılan güçlü bir Node.js aracı, HTML verilerini olağanüstü yüksek kaliteli PDF dosyalarına dönüştürmek için tasarlanmıştır. [72] Orijinal web içeriğinden ödün vermeden, HTML, CSS ve diğer JavaScript dosyalarını doğru şekilde biçimlendirilmiş PDF'lere dönüştürme sürecini hızlandırır. Raporlar, faturalar ve sertifikalar gibi dinamik, yazdırılabilir belgeler oluşturması gereken web uygulamaları için çok faydalı bir araçtır.
[74] IronPDF'nin sayfa ayarları, sayfa başlıkları, sayfa altlıkları, yazı tipleri ve görüntüler ekleme yeteneği gibi özelleştirilebilir birçok özelliği vardır. Her bir test PDF çıktısının gereksinimlere uygun olmasını sağlamak için karmaşık yerleşim ve stilleri işleyebilir. Dahası, IronPDF, JavaScript'in HTML içinde çalışmasını yöneterek, dinamik ve etkileşimli içeriğin hassas bir şekilde işlenmesini sağlar.

IronPDF'nin Özellikleri
1. HTML'den PDF Oluşturma
[79] JavaScript, HTML ve CSS'yi PDF'ye dönüştürün. Modern web standartlarının iki önemli özelliği olan medya sorgularını ve duyarlı tasarımı destekler. HTML ve CSS ile PDF raporları, faturalar ve belgeleri dinamik bir şekilde dekore etmek için kullanışlıdır.
2. PDF Düzenleme
Mevcut PDF'lere metin, resim ve diğer içerikler eklenebilir. PDF dosyalarından metin ve resim çıkarın. Birden fazla PDF'yi tek bir dosyada birleştirin. PDF dosyalarını birden fazla ayrı belgeye bölün. [85] Filigranlar, yorumlamalar, sayfa üst bilgileri ve alt bilgiler dahil edin.
3. Performans ve Güvenilirlik
[87] Endüstriyel ortamlarda istenen yüksek performans ve güvenilirlik tasarım nitelikleridir. [88] Büyük belge gruplarını kolaylıkla yönetir.
IronPDF Yükleyin
[89] Node.js projelerinde PDF'lerle çalışmak için ihtiyaç duyduğunuz araçları almak için IronPDF paketini kurun. Aşağıdaki komutu çalıştırın:
npm install @ironsoftware/ironpdfnpm install @ironsoftware/ironpdfSockJS'yi IronPDF ile Birleştir
Node.js sunucunuzda PDF oluşturma isteklerini 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}`);
});İstemci Tarafı Kurulum
Sunucu ile etkileşime geçmek ve PDF oluşturma isteklerini göndermek için istemci tarafında SockJS'yi 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>Sunucu Tarafı: Node.js sunucusu bir SockJS sunucusunu yapılandırır (sockjsServer) ve /socket yolu üzerinde 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'i oluşturduktan sonra, base64 kodlu PDF verilerini istemciye geri göndermek için SockJS bağlantısını kullanır.

İstemci Tarafı: İstemci, 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 bastığında HTML içeriğini (htmlContent) sunucuya PDF oluşturma için göndermek üzere sock.send(htmlContent) kullanır. PDF verilerini sunucudan aldıktan sonra (sock.onmessage) PDF'yi gösterir veya indirir.

Aşağıda koddan üretilen çıktı bulunur.

Sonuç
Web uygulama geliştirmede, gerçek zamanlı iletişim için SockJS ve dinamik PDF üretimi için IronPDF kullanıldığında güçlü bir sinerji oluşur. SockJS ile, istemciler ve sunucular arasında çift yönlü iletişim kolay hale gelir ve etkileşimli işbirliği ve gerçek zamanlı güncellemeler gibi özelliklere olanak tanır. Ancak, IronPDF programcıların PDF belgelerini programatik olarak oluşturmasını ve düzenlemesini sağlar. Hatta HTML metnini dinamik bir şekilde PDF'lere dönüştürebilir.
Bu teknolojilerin entegrasyonu, kullanıcı girdisine veya gerçek zamanlı veri güncellemelerine yanıt olarak anında PDF belgeleri oluşturabilen karmaşık web uygulamalarını mümkün kılar. Gerçek zamanlı belge üretimi, grup düzenleme veya etkileşimli raporlama işlevsellikleri gerektiren uygulamalar bu entegrasyondan özellikle fayda sağlayacaktır. SockJS'yi anlık güncellemeler ve IronPDF'yi dinamik PDF oluşturma için kullanarak, geliştiriciler kullanıcı deneyimini optimize edebilir, iş akışlarını optimize edebilir ve herhangi bir ciddi SockJS kullanıcısı için bir dizi iş gereksinimini karşılayan sağlam çözümler sunabilir.
IronPDF kullanarak OCR, barkod tarama, PDF üretimi, Excel etkileşimi ve daha birçok özelliği ekleyerek Node.js uygulama geliştirme araç setinizi faydalı hale getirebiliriz. Iron Software'ın son derece özelleştirilebilir sistemleri ve topluluk destekli geniş eklenti kütüphanesi, geliştiricilerin özellikleri ve web uygulamalarını daha hızlı oluşturmasını sağlar.
Geliştiriciler, IronPDF'nin birçok özelliğini ücretsiz deneme lisansı ve firmadan bir dizi kod örneğiyle kullanabilir ve sonra satın almaya karar verebilir. IronPDF'nin sürekli lisanslaması hakkında daha fazla bilgi için lisans sayfasını ziyaret edin. IronPDF'yi kullanmaya başlama hakkında daha fazla talimat için dökümantasyon sayfasını ziyaret edin.








