streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır)
JSON-RPC protokolünü kullanarak, StreamJsonRpc C# ile müşteriler ve sunucular arasında çeşitli taşıma seviyelerinde etkili iletişimi sağlar. Bu kütüphane yardımıyla, uzak prosedür çağrıları daha kolay bir şekilde uygulanabilir, geliştiricilerin programlarının uzaktaki sunucularda metodları yerelde çağırır gibi çağırabildiği güvenilir dağıtılmış sistemler oluşturmasına olanak tanır. JSON-RPC istekleri aracılığıyla aktarılan veriler temelinde dinamik PDF oluşturmayı sağlayarak, StreamJsonRpc, PDF üretimi ve düzenlemesi için kapsamlı bir .NET Framework olan IronPDF ile kullanıldığında uygulama yeteneklerini iyileştirir. İstendiği zaman PDF oluşturması gereken özelleştirilmiş raporlar, faturalar veya herhangi bir belge-merkezli uygulama oluşturma sürecini kolaylaştırmak isteyen geliştiriciler için bu arayüz oldukça yararlıdır.
IronPDF, HTML, ASPX ve ham veriyi yüksek kaliteli PDF yayınlarına dönüştürmeyi destekleyerek içerik düzenleme ve teslimatta geliştiricilere esneklik ve verimlilik sağlar. StreamJsonRpc ve IronPDF bir araya gelerek, karmaşık PDF'leri uzaktaki prosedür çağrıları ile kolayca birleştirerek duyarlı, ölçeklenebilir uygulamalar oluşturan C# geliştiricileri için birlikte çalışır.
StreamJsonRpc Nedir?
StreamJsonRpc, hafif ve verimli bir tel protokolü kullanarak uzak prosedür çağrılarını (RPC) kolaylaştırmak için tasarlanmış çapraz platform bir kütüphanedir. TCP/IP, adlandırılmış borular, ve HTTP gibi çeşitli iletişim kanallarını destekleyen bir alt taşıma mekanizması kullanır. Kütüphane, gelen istekleri ve yanıtları işlemek için .NET olaylarından yararlanarak, asenkron iletişim için sağlam bir mekanizma sağlar. Geliştiriciler, RPC isteklerini işlemek için metod uygulamalarını ekleyebilir ve StreamJsonRpc API'sini kullanarak özel davranışlar tanımlayabilir. StreamJsonRpc, farklı platformlar arasında uyumluluğu sağlarken, çeşitli .NET uygulamalarına sorunsuz entegrasyon olanağını sağlayan bir .NET Taşınır Kitaplık olarak mevcuttur.

Bildirimler ve ilerleme raporlamaları dahil çift yönlü iletişim için güçlü bir destek, StreamJsonRpc'in anahtar özelliklerinden biridir. HTTP, Adlandırılmış Borular, ve TCP/IP dahil çeşitli taşıma protokollerini destekleyerek, programlara daha fazla iletişim seçeneği sağlar. StreamJsonRpc tarafından JSON-RPC mesaj serileştirimi ve serileştirilmemesi sağlanır, birçok platform ve JSON destekleyen bilgisayar dilleri ile uyumluluğu garanti altına alır.
StreamJsonRpc, performans ve genişletilebilirlik göz önünde bulundurularak tasarlandı. Mevcut C# programları ile uyumludur ve istemci-sunucu uygulamaları, mikro hizmet mimarileri, dağıtılmış sistemler ve güvenilir ve etkili iletişimin önemli olduğu diğer uygulamalar oluşturulabilir. C# projelerine uzak prosedür çağrıları entegre ederken, güvenilirliği ve kullanım kolaylığı dolayısıyla genellikle tercih edilir.
StreamJsonRpc Özellikleri
JSON-RPC protokolüne dayalı istemci-sunucu uygulama iletişimini kolaylaştırmak ve iyileştirmek için tasarlanmış olan C#'ın StreamJsonRpc'i kapsamlı bir işlevsellik kümesi sağlar.
Uzak Prosedür Çağrıları (RPC)
StreamJsonRpc, uzak işlemleri yerel fonksiyon çağrıları gibi düşünerek, istemcilerin sunucuda metodları uzaktaki prosedür çağrıları aracılığıyla çağırmasına olanak tanır. Ağ iletişiminin karmaşıklıklarını gizleyerek, bu soyutlama dağıtılmış uygulamaların oluşturulmasını kolaylaştırır.
Çift Yönlü İletişim
Kitaplık, çift taraflı istemci-sunucu iletişimini destekler. Gerçek zamanlı iletişim ve güncellemeler, istemcilerin sunuculara istekler gönderebilmesi ve bunların bildirimler veya sonuçlarla yanıtlayabilmesi sayesinde mümkün olur.
Taşıma Katmanı Agnostisizmi
Taşıma katmanına karşı agnostik olduğundan, StreamJsonRpc, HTTP, Adlandırılmış Borular ve TCP/IP gibi çeşitli taşıma protokolleri üzerinde çalışabilir. Bu uyarlanabilirlik, geliştiricilerin uygulamalarının ihtiyaçlarına ve ağ ayarlarına göre en iyi taşıma yöntemini seçmelerine olanak tanır.
Serileştirme ve Seri Geri Açma
Çeşitli platformlar ve JSON destekleyen bilgisayar dilleri arasında sorunsuz iletişimi garanti eden JSON-RPC mesaj serileştirme ve seri geri açma işlemlerini yönetir.
İlerleme Raporlama
Uzun süren etkinlikler için StreamJsonRpc ilerleme raporlama tekniklerini destekler. Bu özellik, sunucuların mevcut süreçlerin durumu hakkında istemcileri güncelleyebilmesini sağlayarak kullanıcı deneyimini ve şeffaflığı artırır.
Hata Yönetimi
Kütüphane, uzaktan yöntemlerin çağrılması sırasında ortaya çıkan istisna ve problemleri yönetmek için kapsamlı hata işleme özelliklerine sahiptir. Bu, dağıtılmış sistemlerin dayanıklılığını ve güvenilirliğini garanti eder.
Genişletme Noktaları
Geliştiriciler, StreamJsonRpc'nin işlevselliğini değiştirmek veya zaten mevcut olan uygulama mimarileriyle entegre etmek için genişletebilirler. Çeşitli entegrasyon ihtiyaçlarını ve uygulama senaryolarını karşılayacak şekilde özelleştirilebilir olması sayesinde esneklik sağlanır.
Performans Optimizasyonu
Verimli özel mesaj işleme ve taşıma katmanı yönetimi yoluyla, StreamJsonRpc, istemci-sunucu iletişiminde verimi maksimize ederken düşük yüke garanti verir.
Asenkron Destek
Asenkron işlemler kullanarak, uygulamaların daha iyi yanıt verebilirlik ve ölçeklenebilirlik elde etmesine olanak tanır. Tamamen asenkron iletişim kalıplarını destekler.
Uyumluluk
JSON-RPC standardına uyum sağlayarak, StreamJsonRpc, JSON destekleyen diğer dillerde oluşturulmuş hizmetler ve C# uygulamaları arasında birlikte çalışabilirlik sağlayarak farklı ortamlarda sorunsuz entegrasyonu kolaylaştırır.
Ana özelliklerin yanı sıra, kompakt ikili serileştirme desteği ve dinamik istemci proxy gibi JSON-RPC spesifikasyonunun ötesinde bazı ek özellikler içerir.
StreamJsonRpc C# Oluşturma ve Yapılandırma
Bir C# uygulaması içinde StreamJsonRpc'yi oluşturmak ve yapılandırmak için bir istemci ve sunucu ayarlanmalıdır. Her bölüm için detaylı talimatlar aşağıda verilmiştir:
Projenizi Ayarlayın
Önce .NET projenizin hazır olduğundan emin olun. Visual Studio veya .NET CLI ile yeni bir proje oluşturabilirsiniz.
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
StreamJsonRpc Paketini Yükle
JSON-RPC iletişimini uygulamak için NuGet'ten StreamJsonRpc paketini yükleyin. Gerekli kütüphaneleri içerir.
dotnet add package StreamJsonRpc
dotnet add package StreamJsonRpc
JSON-RPC Sunucusunu Uygulama
JSON-RPC için sunucu olarak işlev görecek bir sınıf oluşturun. Bu basit örneğe bakın:
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
// Asynchronous method to add two integers
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
// Asynchronous method to greet a user
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
// Initialize the service offering RPC methods
var service = new MyService();
// Create a StreamJsonRpc server listening on websockets
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Add service as RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Dispose resources when done
jsonRpc.Dispose();
}
}
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
// Asynchronous method to add two integers
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
// Asynchronous method to greet a user
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
// Initialize the service offering RPC methods
var service = new MyService();
// Create a StreamJsonRpc server listening on websockets
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Add service as RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Dispose resources when done
jsonRpc.Dispose();
}
}
Imports Microsoft.AspNetCore.Hosting
Imports StreamJsonRpc
Imports System
Imports System.Threading.Tasks
Public Class MyService
' Asynchronous method to add two integers
Public Function AddAsync(ByVal a As Integer, ByVal b As Integer) As Task(Of Integer)
Return Task.FromResult(a + b)
End Function
' Asynchronous method to greet a user
Public Function GreetAsync(ByVal name As String) As Task(Of String)
Return Task.FromResult($"Hello, {name}!")
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize the service offering RPC methods
Dim service = New MyService()
' Create a StreamJsonRpc server listening on websockets
Dim jsonRpc As New JsonRpc(New ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"))
' Add service as RPC target
jsonRpc.AddLocalRpcTarget(service)
' Start listening for incoming JSON-RPC requests
jsonRpc.StartListening()
Console.WriteLine("JsonRpc server listening on ws://localhost:8080")
Console.WriteLine("Press any key to stop the server...")
' Wait for user input to stop the server
Console.ReadKey()
' Dispose resources when done
jsonRpc.Dispose()
End Sub
End Class
MyService Sınıfı: Müşterinin uzaktan çağırabileceği yöntemleri belirler, örneğin AddAsync ve GreetAsync.

Bu, yeni bir JsonRpc örneğini başlatır, MyService'yi başlatır ve ws://localhost:8080 üzerinde dinlemek için bir WebSocket mesaj işleyicisi yapılandırır. Sunucu, yeni bir yerel RPC hedefi olarak MyService'yi sunarak JSON-RPC sorgularının gelmesini beklemeye başlar. Dinlemeyi durdurmak ve kaynakları atmak için bir tuşa basın.
İstemci Yapılandırması
JSON-RPC için istemci olarak işlev görecek bir sınıf oluşturun. Bu basit örneğe bakın:
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Create a JSON-RPC client connected to the WebSocket server endpoint
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Invoke the AddAsync method on the server
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
// Invoke the GreetAsync method on the server
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
// Dispose the proxy when done
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Create a JSON-RPC client connected to the WebSocket server endpoint
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Invoke the AddAsync method on the server
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
// Invoke the GreetAsync method on the server
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
// Dispose the proxy when done
proxy.Dispose();
}
}
Imports StreamJsonRpc
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Create a JSON-RPC client connected to the WebSocket server endpoint
Dim proxy = New JsonRpc(New ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"))
' Start listening for incoming messages from the server
Await proxy.StartListeningAsync()
' Invoke the AddAsync method on the server
Dim resultAdd = Await proxy.InvokeAsync(Of Integer)("AddAsync", 10, 20)
Console.WriteLine($"AddAsync result: {resultAdd}")
' Invoke the GreetAsync method on the server
Dim resultGreet = Await proxy.InvokeAsync(Of String)("GreetAsync", "John")
Console.WriteLine($"GreetAsync result: {resultGreet}")
' Dispose the proxy when done
proxy.Dispose()
End Function
End Class
Bu örnek, WebSocket mesaj işleyicili bir JsonRpc örneği başlatmak için ws://localhost:8080 ile bağlantı kurar. Ardından, sunucuda tanımlanan AddAsync ve GreetAsync yöntemlerini (MyService) JSON-RPC sunucusuyla bir bağlantı kurarak etkinleştirir. Son olarak, sunucunun döndürdüğü sonuçları gösterir ve RPC çağrılarının tamamlanmasının ardından kaynakları serbest bırakır.

Başlarken
C# uygulamaları içerisinde PDF sayfaları, JSON-RPC sorguları aracılığıyla veri değişimi kullanarak StreamJsonRpc'yi IronPDF ile entegre ederek dinamik olarak oluşturulabilir. Bu, IronPDF ve StreamJsonRpc kurulum talimatları için temel bir rehberdir:
IronPDF nedir?
IronPDF, C# programları tarafından PDF belgeleri oluşturmak, okumak ve düzenlemek için kullanılabilir. Bu araç, geliştiricilerin HTML, CSS ve JavaScript bilgilerini yazdırmaya hazır, yüksek kaliteli PDF'lere dönüştürmesini basit hale getirir. Önemli görevler arasında başlık ve altbilgi ekleme, PDF'leri bölme ve birleştirme, belgelere filigran ekleme ve HTML'yi PDF'ye dönüştürme yer alır. IronPDF, hem .NET Framework hem de .NET Core'u desteklediği için çeşitli uygulamalar için faydalıdır.
PDF'ler kullanımı kolay ve çok sayıda içeriği sunabildiğinden, geliştiriciler bunları ürünlerine kolayca entegre edebilirler. IronPDF, karmaşık düzenleri ve formatlamaları kolaylıkla yönetebildiği için, oluşturduğu çıktı PDF'leri neredeyse orijinal HTML metnini yansıtır.

IronPDF'nin Özellikleri
HTML'den PDF Üretimi
[79] JavaScript, HTML ve CSS'yi PDF'ye dönüştürün. [80] IronPDF, modern web standartları olan medya sorguları ve duyarlı tasarımı destekler. HTML ve CSS kullanarak PDF belgeleri, raporlar ve faturalar için dinamik süsleme yapmak için yararlı bir araçtır.
PDF Düzenleme
[83] Mevcut PDF'lere metin, fotoğraf ve diğer içerikleri ekleyebilirsiniz. PDF dosyalarından metin ve resimler çıkarın. Geliştiriciler, birden fazla PDF'yi tek bir dosya halinde birleştirebilir veya PDF dosyalarını birden fazla ayrı belgelere bölebilir. [85] Filigranlar, yorumlamalar, sayfa üst bilgileri ve alt bilgiler dahil edin.
PDF Dönüştürme
IronPDF kullanılarak Word, Excel ve resim dosyaları gibi çeşitli dosya formatlarını PDF'ye dönüştürmek mümkündür. Ayrıca, PDF'den resim formatlarına (PNG, JPEG, vb.) dönüştürme işlemlerini gerçekleştirebilirsiniz.
Performans ve Güvenilirlik
[87] Endüstriyel ortamlarda istenen yüksek performans ve güvenilirlik tasarım nitelikleridir. IronPDF, büyük belge setlerini kolaylıkla yönetir.
IronPDF Yükleyin
.NET projelerinde PDF'lerle çalışmak için ihtiyaçınız olan araçlara sahip olmak için IronPDF paketini yükleyin.
dotnet add package IronPdf
dotnet add package IronPdf
IronPDF ile StreamJsonRpc
Hizmet Sınıfı Oluşturma
Alınan verilerden PDF oluşturacak yöntemleri PdfService.cs hizmet sınıfında sağlayın. Bir örnek olarak:
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
// Asynchronously generates a PDF from HTML content
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
// Asynchronously generates a PDF from HTML content
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
Imports IronPdf
Imports System.IO
Imports System.Threading.Tasks
Public Class PdfService
' Asynchronously generates a PDF from HTML content
Public Async Function GeneratePdfAsync(ByVal htmlContent As String) As Task(Of Byte())
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
Return Await pdf.BinaryDataAsync()
End Function
End Class
StreamJsonRpc Sunucusunu Yapılandırma
Program.cs'i StreamJsonRpc sunucusu üzerinde bir akış JSON-RPC aracılığıyla GeneratePdfAsync yöntemini sunmak için arayüz olarak kullanın:
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Initialize PdfService which generates PDFs
var service = new PdfService();
// Create JSON-RPC server listening on websockets
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
// Add the PdfService as an RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Gracefully stop listening and dispose resources when done
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Initialize PdfService which generates PDFs
var service = new PdfService();
// Create JSON-RPC server listening on websockets
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
// Add the PdfService as an RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Gracefully stop listening and dispose resources when done
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
Imports StreamJsonRpc
Imports System
Imports System.Net.WebSockets
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Initialize PdfService which generates PDFs
Dim service = New PdfService()
' Create JSON-RPC server listening on websockets
Dim jsonRpc As New JsonRpc(New WebSocketRpcServerMessageHandler(New Uri("ws://localhost:8080")))
' Add the PdfService as an RPC target
jsonRpc.AddLocalRpcTarget(service)
' Start listening for incoming JSON-RPC requests
jsonRpc.StartListening()
Console.WriteLine("JsonRpc server listening on ws://localhost:8080")
Console.WriteLine("Press any key to stop the server...")
' Wait for user input to stop the server
Console.ReadKey()
' Gracefully stop listening and dispose resources when done
Await jsonRpc.StopListeningAsync()
jsonRpc.Dispose()
End Function
End Class

IronPDF İstemcisi Oluşturma
Sunucuya bağlanmak ve bir PDF oluşturulmasını istemek için StreamJsonRpc istemcisini (ClientProgram.cs) uygulayın:
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using System.IO;
class ClientProgram
{
static async Task Main(string[] args)
{
// Create JSON-RPC client connected to WebSocket server endpoint
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Example HTML content
string htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Invoke GeneratePdfAsync method on the server
var pdfBytes = await proxy.InvokeAsync<byte[]>("GeneratePdfAsync", htmlContent);
// Save the resulted PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
// Dispose the proxy when done
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using System.IO;
class ClientProgram
{
static async Task Main(string[] args)
{
// Create JSON-RPC client connected to WebSocket server endpoint
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Example HTML content
string htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Invoke GeneratePdfAsync method on the server
var pdfBytes = await proxy.InvokeAsync<byte[]>("GeneratePdfAsync", htmlContent);
// Save the resulted PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
// Dispose the proxy when done
proxy.Dispose();
}
}
Imports StreamJsonRpc
Imports System
Imports System.Net.WebSockets
Imports System.Text
Imports System.Threading.Tasks
Imports System.IO
Friend Class ClientProgram
Shared Async Function Main(ByVal args() As String) As Task
' Create JSON-RPC client connected to WebSocket server endpoint
Dim proxy = New JsonRpc(New WebSocketRpcClientMessageHandler(New Uri("ws://localhost:8080")))
' Start listening for incoming messages from the server
Await proxy.StartListeningAsync()
' Example HTML content
Dim htmlContent As String = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
' Invoke GeneratePdfAsync method on the server
Dim pdfBytes = Await proxy.InvokeAsync(Of Byte())("GeneratePdfAsync", htmlContent)
' Save the resulted PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes)
Console.WriteLine("PDF generated: GeneratedPdf.pdf")
' Dispose the proxy when done
proxy.Dispose()
End Function
End Class
PdfService.cs sınıfı, bir C# uygulamasının IronPDF aracılığıyla PDF belgeleri üretmesini kolaylaştıran bir StreamJsonRpc sunucu uygulamasının temel bir parçasıdır. IronPDF'nin RenderHtmlAsPdf'ini kullanarak, bu hizmet sınıfı, HTML materyalini PDF formatına dönüştürme işlemini ele alan yöntemler içerir. HTML içeriği, asenkron olarak tanımlanan (async Task<byte[]> GeneratePdfAsync(string htmlContent)) GeneratePdfAsync yöntemi aracılığıyla girdi olarak kabul edilir.
Bu yöntem, bir ChromePdfRenderer örneği oluşturarak dönüşümü gerçekleştirmek ve RenderHtmlAsPdf(htmlContent) ile bir PDF belgesi üretmek için kullanılır. Oluşturulan PDF'nin ikili verileri daha sonra yöntem (pdf.BinaryDataAsync()) tarafından asenkron olarak alınır ve veriler bir byte[] dizisi olarak döndürülür.

Bu yöntem, hızlı ve tepki verebilir PDF oluşturulmasını garanti eder, böylece belgelerin hızlı bir şekilde üretilmesi gereken uygulamalar için uygundur. PDF oluşturma mantığı, geliştiricilerin bu işlevselliği StreamJsonRpc üzerinden entegre edip ortaya çıkarmasını basit hale getiren PdfService.cs içinde bulunur. Bu durum, uzak istemcilerin PDF oluşturma görevlerini sorunsuz bir şekilde yerine getirmelerine olanak tanırken, sunucu tarafı tasarımının modülerliği ve netliğini de korur.

Sonuç
Sonuç olarak, geliştiriciler StreamJsonRpc ile IronPDF'yi birleştirerek, güvenilir ve etkili .NET uygulamaları oluşturabilir ve uzaktan prosedür çağrılarını (RPC) destekleyen sağlam PDF üretim yeteneklerinden yararlanabilirler. StreamJsonRpc, uzaktan prosedür çağrıları için hafif bir protokol olan JSON-RPC kullanarak istemci ve sunucu bileşenleri arasında sorunsuz iletişim sağlar. Geliştiriciler, dinamik, veri odaklı PDF'ler oluşturmak ve bu uzak çağrıların sonucuna bağlı olarak kullanmak için bunu IronPDF ile birlikte kullanabilirler.
Raporlar, faturalar veya en son verilere uygun şekilde en güncel bilgiyi yansıtması gereken herhangi bir belge hazırlarken, bu entegrasyon çok faydalıdır çünkü gerçek zamanlı veri alımı ve PDF çıktısı sağlar. Bu teknolojilerin entegrasyonu, geliştirme sürecini optimize eder, performansı artırır ve karmaşık iş ihtiyaçlarını etkin bir şekilde karşılamak için uygulamanın kapasitesini güçlendirir.
IronPDF ve Iron Software Geliştirme Araçları ile geliştiriciler, tümü $799 başlangıç fiyatıyla daha fazla web uygulaması ve özellik oluşturabilirler. Ana kavramlarını son derece esnek Iron Software araç kutusu ile birleştirerek bunu başarır.
Tüm lisanslama seçenekleri projeye uygun şekilde açıklandığında, geliştiriciler en iyi modeli seçmeyi daha kolay bulacaktır. Yukarıda listelenen faydalar, geliştiriciler için birçok soruna zamanında, koordine edilmiş ve etkili şekilde çözümler oluşturmayı kolaylaştırır.
Sıkça Sorulan Sorular
HTML'yi C#'de PDF'ye nasıl dönüştürebilirim?
PDF kütüphanesi RenderHtmlAsPdf metodunu, HTML strınlerine PDF olarak dönüştürmek için kullanabilirsiniz. Ek olarak, HTML dosyalarını PDF'ye dönüştürmek RenderHtmlFileAsPdf metodu kullanılarak gerceklestirilebilir.
StreamJsonRpc nedir ve C#'ta nasıl çalışir?
StreamJsonRpc, JSON-RPC protokolunu kullanarak uzaktan prosedur caglarini kolaylastiran bir C# kütüphanesidir. TCP/IP, adi boru hatlari ve HTTP gibi çeşitli tasima protokolleri aracılığıyla istemciler ve sunucular arasında iki yonlu iletişim saglar.
StreamJsonRpc, PDF oluşturma yeteneklerini nasıl artirir?
StreamJsonRpc, uzaktaki istemcilerin JSON-RPC uzerinden PDF oluşturma gorevlerini cagirmalarina olanak tanıyarak, HTML icerigini dinamik olarak PDF'ye dönüştürmek için bir PDF kütüphanesi kullanarak PDF oluşturma yeteneklerini arttırır.
StreamJsonRpc, dağıtik sistemler için neden avantajlidir?
StreamJsonRpc, uzaktan metod cagrislarini sorunsuz hale getirdigi, asenkron işlemleri ve saglam hata yönetimini destekledigi için dağıtik sistemler için yararlıdır, bu da sistemin guvenilirligini ve etkinligini arttirir.
C# projesinde StreamJsonRpc kurmak için gereken adimlar nelerdir?
C# projektinizde StreamJsonRpc kurmak için, bir .NET projesi oluşturmaniz, NuGet araciligiyla StreamJsonRpc paketini kurmanız, ve secilen bir tasima protokolu uzerinden iletişim için yapılandırılmış bir JSON-RPC sunucusunun ve bir istemcisinin apılmasını uygularsınız.
StreamJsonRpc, .NET uygulamalarında rapor veya faturalar oluşturmak için kullanilabilir mi?
Evet, bir PDF oluşturma kütüphanesiyle StreamJsonRpc'yi entegre ederek, JSON-RPC isteklerine yanıt olarak raporlar veya faturalar için dinamik olarak PDF'ler oluşturabilir, evrak-merkezli uygulamalar için ideal hale getirir.
StreamJsonRpc hangi tasima protokollerini destekler?
StreamJsonRpc tasima katmanı farkı göstermez ve HTTP, Adi Borular, ve TCP/IP gibi çeşitli tasima protokollerini destekler, geliştiricilerin uygulamalarının ozgu ihtiyaçları doğrultusunda seçim yapmasına olanak tanır.
Bir PDF kütüphanesi C#'ta belge işleme nasıl kolaylastırır?
Bir PDF kütüphanesi, PDF'leri oluşturma, okuma ve düzenleme işlemlerini kolaylastirarak C#'ta belge işlemi saglar. HTML, CSS, ve JavaScript'i PDF'ye dönüştürme işlemlerini destekler ve basliklar ekleme, altbilgiler ekleme, ve ayirma veya birlestirme gibi işlemleri gerceklestirme olanakları sunar.
StreamJsonRpc icinde asenkron işlemleri kullanmanın faydaları nelerdir?
StreamJsonRpc'deki asenkron işlemler, dağıtik sistemlerde gelen isteklerle yanıtları verimli şekilde yöneterek, uygulamanın tepki verme ve yayilim yeteneklerini arttırır.
StreamJsonRpc, guvenilir hata yönetimini nasıl saglar?
StreamJsonRpc, uzaktan metod cagirimlari sirasında meydana gelebilecek istisnalar ve sorunlar için kapsamli yönetim özellikleri sunarak, dağıtik sistem dayanıklılıgını korur.




