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'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-clientnpm install sockjs-clientSockJS'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>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>Sunucu tarafı WebSocket uç noktanızın URL'si, "http://localhost:3000/socket" yerine kullanılmalıdır.

Sunucu Tarafı Kurulumu
SockJS-Node Kurulumunu Yap
SockJS-Node paketini kurmak için npm kullanın:
npm install sockjsnpm install sockjsSockJS 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}`);
});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.

Ç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.

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}`);
});İ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>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.

İ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.

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

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.








