Altbilgi içeriğine atla
.NET YARDıM

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.

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1

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
SHELL

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
SHELL

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
$vbLabelText   $csharpLabel

MyService Sınıfı: Müşterinin uzaktan çağırabileceği yöntemleri belirler, örneğin AddAsync ve GreetAsync.

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2

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
$vbLabelText   $csharpLabel

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.

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3

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.

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4

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
SHELL

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 5

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
$vbLabelText   $csharpLabel

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.

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 6

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.

streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır): Şekil 7

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.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

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