Przejdź do treści stopki
POMOC .NET

streamjsonrpc c# (Jak to dziala dla programistow)

Wykorzystując protokół JSON-RPC, StreamJsonRpc w C# umożliwia skuteczną komunikację między klientami a serwerami na różnych poziomach transportu. Dzięki tej bibliotece zdalne wywołania procedur mogą być implementowane łatwiej, co pozwala deweloperom tworzyć niezawodne systemy rozproszone, w których programy mogą wywoływać metody na odległych serwerach tak, jakby były lokalne. Umożliwiając dynamiczne tworzenie PDF na podstawie danych przesyłanych przez żądania JSON-RPC, StreamJsonRpc poprawia możliwości aplikacji, gdy jest używany z IronPDF, kompletnym .NET Framework do generowania i obsługi plików PDF. Dla programistów, którzy chcą usprawnić proces tworzenia spersonalizowanych raportów, faktur lub dowolnych aplikacji skoncentrowanych na dokumentach, które muszą generować PDF na żądanie, ten interfejs jest bardzo pomocny.

IronPDF daje deweloperom elastyczność i efektywność w organizowaniu i dostarczaniu treści, wspierając konwersję HTML, ASPX i surowych danych na publikacje PDF wysokiej jakości. StreamJsonRpc i IronPDF współpracują, umożliwiając deweloperom C# tworzenie responsywnych, skalowalnych aplikacji, które łatwo łączą złożone PDF z zdalnymi wywołaniami procedur.

Czym jest StreamJsonRpc?

StreamJsonRpc to biblioteka wieloplatformowa zaprojektowana do ułatwienia zdalnych wywołań procedur (RPC), używając lekkiego i wydajnego protokołu transmisji. Wykorzystuje mechanizm transportowy, który obsługuje różne kanały komunikacyjne, takie jak TCP/IP, nazwane potoki i HTTP. Biblioteka korzysta z zdarzeń .NET do obsługi przychodzących żądań i odpowiedzi, zapewniając solidny mechanizm do komunikacji asynchronicznej. Deweloperzy mogą dołączać implementacje metod do obsługi żądań RPC i definiować niestandardowe zachowania za pomocą API StreamJsonRpc. StreamJsonRpc jest dostępny jako biblioteka przenośna .NET, zapewniając zgodność na różnych platformach i umożliwiając płynną integrację w różnorodnych aplikacjach .NET.

streamjsonrpc c# (Jak to działa dla deweloperów): Rysunek 1

Silne wsparcie dla dwukierunkowej komunikacji, w tym powiadomień i raportowania postępu, jest jedną z kluczowych cech StreamJsonRpc. Poprzez wspieranie różnych protokołów transportowych, w tym HTTP, nazwanych potoków i TCP/IP, daje programom więcej opcji komunikacyjnych. Serializację i deserializację wiadomości JSON-RPC obsługuje StreamJsonRpc, gwarantując zgodność na wielu platformach i w językach komputerowych wspierających JSON.

StreamJsonRpc został zaprojektowany z myślą o wydajności i rozciągliwości. Jest kompatybilny z istniejącymi programami C# i może być używany do budowy aplikacji klient-serwer, architektur mikroserwisów, systemów rozproszonych i innych aplikacji, gdzie niezawodna i efektywna komunikacja jest kluczowa. Podczas integracji zdalnych wywołań procedur w projektach C#, deweloperzy często wybierają go ze względu na jego niezawodność i łatwość użycia.

Funkcje StreamJsonRpc

Kompleksowy zestaw funkcjonalności jest oferowany przez StreamJsonRpc w C#, który ma ułatwić i usprawnić komunikację aplikacyjną opartą na protokole JSON-RPC.

Zdalne Wywołania Procedur (RPC)

Traktując operacje zdalne tak, jakby były lokalnymi wywołaniami funkcji, StreamJsonRpc umożliwia klientom wywoływanie metod na serwerze za pomocą zdalnych wywołań procedur. Ukrywając złożoności komunikacji sieciowej, to uproszczenie ułatwia tworzenie aplikacji rozproszonych.

Dwukierunkowa Komunikacja

Biblioteka wspiera komunikację dwukierunkową klient-serwer. Komunikacja w czasie rzeczywistym i aktualizacje są możliwe dzięki zdolności klientów do przesyłania żądań do serwerów, które z kolei mogą odpowiadać powiadomieniami lub wynikami.

Agnostycyzm Warstwy Transportowej

Ponieważ jest niezależna od warstwy transportowej, StreamJsonRpc może działać przez wiele protokołów transportowych, w tym HTTP, nazwane potoki i TCP/IP. Dzięki tej elastyczności, deweloperzy mogą wybrać najlepszą metodę transportu w zależności od potrzeb swoich aplikacji i ustawień sieciowych.

Serializacja i Deserializacja

Zarządza serializacją i deserializacją wiadomości JSON-RPC, gwarantując płynną komunikację na różnych platformach i w językach komputerowych zdolnych do obsługi JSON.

Raportowanie Postępu

Techniki raportowania postępu są wspierane przez StreamJsonRpc dla długo trwających czynności. Ta funkcja poprawia doświadczenie użytkownika i przejrzystość, umożliwiając serwerom aktualizowanie klientów na temat stanu bieżących procesów.

Obsługa Błędów

Aby obsługiwać wyjątki i problemy powstające podczas wywoływania zdalnych metod, biblioteka posiada rozbudowane funkcje obsługi błędów. Zapewnia to odporność i niezawodność systemów rozproszonych.

Punkty Rozszerzeń

StreamJsonRpc można rozszerzać przez deweloperów w celu zmiany jego funkcjonalności lub integracji z już istniejącymi architekturami aplikacyjnymi. Dzięki swojej wszechstronności, można go dostosować do różnych potrzeb integracyjnych i scenariuszy aplikacyjnych.

Optymalizacja Wydajności

Poprzez efektywne przetwarzanie komunikatów niestandardowych i zarządzanie warstwą transportową, StreamJsonRpc maksymalizuje przepustowość w komunikacji klient-serwer, jednocześnie gwarantując niskie obciążenie.

Obsługa Asynchroniczna

Dzięki wykorzystaniu operacji asynchronicznych umożliwia aplikacjom osiąganie lepszej responsywności i skalowalności. Kompletnie wspiera asynchroniczne wzorce komunikacyjne.

Interoperacyjność

Poprzez zgodność ze standardem JSON-RPC, StreamJsonRpc ułatwia płynną integrację w różnorodnych kontekstach, pielęgnując interoperacyjność między aplikacjami C# a usługami zbudowanymi w innych językach, które obsługują JSON.

Obok tych głównych funkcji, są pewne dodatkowe funkcje poza specyfikacją JSON-RPC, które obejmują wsparcie dla kompaktowej binarnej serializacji i dynamicznego klienta proxy.

Create and Config StreamJsonRpc C#

Klient i serwer muszą być skonfigurowane w celu utworzenia i skonfigurowania StreamJsonRpc w aplikacji C#. Szczegółowe instrukcje dla każdej części są przedstawione poniżej:

Przygotuj Swój Projekt

Najpierw upewnij się, że Twój projekt .NET jest gotowy. Możesz utworzyć nowy z Visual Studio lub .NET CLI.

dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
SHELL

Zainstaluj Pakiet StreamJsonRpc

Aby zaimplementować komunikację JSON-RPC, zainstaluj pakiet StreamJsonRpc z NuGet. Zawiera on niezbędne biblioteki.

dotnet add package StreamJsonRpc
dotnet add package StreamJsonRpc
SHELL

Implementuj Serwer JSON-RPC

Stwórz klasę, która będzie działać jako serwer dla JSON-RPC. Zwróć uwagę na ten prosty przykład:

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

Klasa MyService: Określa metody, które klient może wywoływać zdalnie, takie jak AddAsync i GreetAsync.

streamjsonrpc c# (Jak to działa dla deweloperów): Rysunek 2

To uruchamia nową instancję JsonRpc, inicjalizuje MyService i konfiguruje handler wiadomości WebSocket do nasłuchiwania na ws://localhost:8080. Serwer udostępnia MyService jako nowy lokalny cel RPC i zaczyna czekać na przybycie zapytań JSON-RPC. Naciśnij klawisz, aby przestać nasłuchiwać i odrzucić zasoby.

Konfiguracja Klienta

Stwórz klasę, która będzie działać jako klient dla JSON-RPC. Zwróć uwagę na ten prosty przykład:

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

Ten przykład ustanawia połączenie z ws://localhost:8080, aby uruchomić instancję JsonRpc z handlerem wiadomości WebSocket. Następnie włącza metody AddAsync i GreetAsync, które są zdefiniowane na serwerze (MyService), ustanawiając połączenie z serwerem JSON-RPC. Wreszcie, pokazuje wyniki zwrócone przez serwer i uwalnia zasoby po zakończeniu wywołań RPC.

streamjsonrpc c# (Jak to działa dla deweloperów): Rysunek 3

Rozpoczęcie

Strony PDF mogą być dynamicznie generowane w aplikacjach C# przez integrację StreamJsonRpc z IronPDF i wykorzystanie danych wymienianych przez zapytania JSON-RPC. To jest podstawowy przewodnik do skonfigurowania IronPDF i StreamJsonRpc:

Czym jest IronPDF?

IronPDF może być używany przez programy C# do tworzenia, czytania i edytowania dokumentów PDF. To narzędzie ułatwia deweloperom konwersję informacji HTML, CSS i JavaScript do gotowych do druku, wysokiej jakości PDF. Wśród kluczowych zadań są dodawanie nagłówków i stopek, dzielenie i łączenie plików PDF, nakładanie znaków wodnych oraz konwersja HTML do PDF. IronPDF jest pomocny dla różnych aplikacji, ponieważ wspiera zarówno .NET Framework, jak i .NET Core.

Ponieważ pliki PDF są łatwe w użyciu i oferują ogromną ilość treści, deweloperzy mogą łatwo je zintegrować w swoich produktach. Ponieważ IronPDF może obsługiwać złożone układy i formatowania z łatwością, generowane przez niego pliki PDF niemal dorównują oryginalnemu tekstowi HTML.

streamjsonrpc c# (Jak to działa dla deweloperów): Rysunek 4

Funkcje IronPDF

Generowanie PDF z HTML

Konwertuj JavaScript, HTML i CSS do PDF. IronPDF wspiera zapytania multimedialne i projekt responsywny, dwa nowoczesne standardy internetowe. Jest to użyteczne narzędzie do dynamicznego ozdabiania dokumentów PDF, raportów i rachunków za pomocą HTML i CSS.

Edycja PDF

Do istniejących PDF można dodawać tekst, zdjęcia i inne treści. Wyciągaj tekst i obrazy z plików PDF. Deweloperzy mogą łączyć wiele PDF w jeden plik lub dzielić pliki PDF na kilka oddzielnych dokumentów. Dołączaj znaki wodne, adnotacje, nagłówki i stopki.

Konwersja PDF

Można konwertować różne formaty plików, w tym Word, Excel i pliki obrazów, do PDF za pomocą IronPDF. Z jego pomocą można także przeprowadzać konwersję PDF-do-obrazy (PNG, JPEG, itp.).

Wydajność i Niezawodność

Wysoka wydajność i niezawodność to pożądane cechy projektu w środowiskach przemysłowych. IronPDF zarządza dużymi zestawami dokumentów z łatwością.

Zainstaluj IronPDF

Aby uzyskać potrzebne narzędzia do pracy z PDF w projektach .NET, zainstaluj pakiet IronPDF.

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

StreamJsonRpc z IronPDF

Stwórz Klasę Serwisu

Dostarcz metody w klasie serwisu PdfService.cs, które będą tworzyć PDF na podstawie otrzymanych danych. Jako ilustracja:

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

Konfiguruj Serwer StreamJsonRpc

Użyj Program.cs jako interfejsu na serwerze dla StreamJsonRpc, aby oferować metodę GeneratePdfAsync nad strumieniem JSON-RPC:

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# (Jak to działa dla deweloperów): Rysunek 5

Stwórz Klienta IronPDF

Aby połączyć się z serwerem i zażądać stworzenia PDF, zaimplementuj klienta StreamJsonRpc (ClientProgram.cs):

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

Klasa PdfService.cs jest fundamentalną częścią implementacji serwera StreamJsonRpc, co ułatwia aplikacji C# generowanie dokumentów PDF za pomocą IronPDF. Wykorzystując RenderHtmlAsPdf z IronPDF, ta klasa usługi zawiera metody do obsługi konwersji treści HTML do formatu PDF. Treści HTML przyjmowane są jako dane wejściowe przez metodę GeneratePdfAsync, która jest oznaczona jako asynchroniczna (async Task<byte[]> GeneratePdfAsync(string htmlContent)).

Ta metoda tworzy instancję ChromePdfRenderer w celu przeprowadzenia konwersji, tworząc dokument PDF z RenderHtmlAsPdf(htmlContent). Generowane binarne dane PDF są następnie pobierane asynchronicznie przez metodę (pdf.BinaryDataAsync()), która następnie zwraca dane jako tablicę byte[].

streamjsonrpc c# (Jak to działa dla deweloperów): Rysunek 6

Ta metoda zapewnia szybkie i responsywne generowanie PDF, czyniąc je odpowiednim dla aplikacji, które muszą szybko tworzyć dokumenty. Logika generowania PDF jest zawarta w PdfService.cs, co ułatwia deweloperom integrację i udostępnienie tej funkcjonalności przez StreamJsonRpc. To pozwala odległym klientom płynnie inicjować zadania generowania PDF, jednocześnie zachowując modułowość i przejrzystość ich projektu po stronie serwera.

streamjsonrpc c# (Jak to działa dla deweloperów): Rysunek 7

Wniosek

Podsumowując, deweloperzy mogą tworzyć niezawodne i efektywne aplikacje .NET, które wspierają zdalne wywołania procedur (RPC) i korzystać z solidnych możliwości produkcji PDF poprzez połączenie StreamJsonRpc z IronPDF. Korzystając z JSON-RPC, lekkiego protokołu do zdalnych wywołań procedur, StreamJsonRpc umożliwia płynną komunikację między komponentami klienta i serwera. Deweloperzy mogą to wykorzystać w połączeniu z IronPDF do generowania dynamicznych, opartych na danych PDF, które zależą od wyników tych zdalnych wywołań.

Podczas przygotowywania raportów, faktur lub dowolnego dokumentu, który musi reprezentować najbardziej aktualne dane dostępne, ta integracja jest szczególnie pomocna, gdyż umożliwia pobieranie danych w czasie rzeczywistym i ekspresję PDF. Integracja tych technologii optymalizuje proces tworzenia, zwiększa wydajność i wzmacnia zdolność aplikacji do efektywnego spełniania skomplikowanych potrzeb biznesowych.

Z IronPDF i Iron Software Development Tools, deweloperzy mogą tworzyć więcej aplikacji internetowych i funkcji szybciej, to wszystko za początkową cenę $799. Realizuje to poprzez łączenie swoich podstawowych koncepcji z ogromnie elastycznym zestawem narzędzi Iron Software.

Deweloperzy znajdą łatwiejsze wybranie najlepszego modelu, jeśli wszystkie opcje licencjonowania odpowiednie dla projektu są jasno opisane. Powyższe korzyści ułatwiają deweloperom tworzenie rozwiązań dla różnych problemów w sposób terminowy, skoordynowany i wydajny.

Często Zadawane Pytania

Jak mogę przekonwertować HTML na PDF w języku C#?

Można użyć metody RenderHtmlAsPdf biblioteki PDF do konwersji ciągów HTML na pliki PDF. Ponadto konwersję plików HTML na pliki PDF można przeprowadzić za pomocą metody RenderHtmlFileAsPdf.

Czym jest StreamJsonRpc i jak działa w języku C#?

StreamJsonRpc to biblioteka C#, która ułatwia zdalne wywołania procedur przy użyciu protokołu JSON-RPC. Umożliwia dwukierunkową komunikację między klientami a serwerami za pośrednictwem różnych protokołów transportowych, takich jak TCP/IP, nazwane potoki i HTTP.

W jaki sposób StreamJsonRpc rozszerza możliwości generowania plików PDF?

StreamJsonRpc rozszerza możliwości generowania plików PDF, umożliwiając zdalnym klientom wywoływanie zadań tworzenia plików PDF za pośrednictwem JSON-RPC, wykorzystując bibliotekę PDF do dynamicznego konwertowania treści HTML na pliki PDF.

Dlaczego StreamJsonRpc jest korzystny dla systemów rozproszonych?

StreamJsonRpc jest korzystny dla systemów rozproszonych, ponieważ umożliwia płynne zdalne wywołania metod, obsługuje operacje asynchroniczne i zapewnia solidną obsługę błędów, poprawiając w ten sposób niezawodność i wydajność systemu.

Jakie kroki należy wykonać, aby skonfigurować StreamJsonRpc w projekcie C#?

Aby skonfigurować StreamJsonRpc w projekcie C#, należy utworzyć projekt .NET, zainstalować pakiet StreamJsonRpc za pośrednictwem NuGet oraz zaimplementować zarówno serwer JSON-RPC, jak i klienta skonfigurowanego do komunikacji za pomocą wybranego protokołu transportowego.

Czy StreamJsonRpc może być używane do generowania raportów lub faktur w aplikacji .NET?

Tak, integrując StreamJsonRpc z biblioteką do generowania plików PDF, można dynamicznie tworzyć pliki PDF dla raportów lub faktur w odpowiedzi na żądania JSON-RPC, co sprawia, że rozwiązanie to idealnie nadaje się do aplikacji opartych na dokumentach.

Jakie protokoły transportowe obsługuje StreamJsonRpc?

StreamJsonRpc jest niezależny od warstwy transportowej i obsługuje różne protokoły transportowe, w tym HTTP, Named Pipes i TCP/IP, co pozwala programistom na wybór w oparciu o konkretne potrzeby ich aplikacji.

W jaki sposób biblioteka PDF ułatwia manipulowanie dokumentami w języku C#?

Biblioteka PDF w języku C# ułatwia obsługę dokumentów, umożliwiając tworzenie, odczytywanie i edycję plików PDF. Obsługuje konwersję HTML, CSS i JavaScript do formatu PDF, a także dodawanie nagłówków, stopek oraz wykonywanie operacji takich jak dzielenie i łączenie plików.

Jakie są zalety korzystania z operacji asynchronicznych w StreamJsonRpc?

Operacje asynchroniczne w StreamJsonRpc poprawiają responsywność i skalowalność aplikacji poprzez wykorzystanie zdarzeń .NET do wydajnego przetwarzania przychodzących żądań i odpowiedzi w systemach rozproszonych.

W jaki sposób StreamJsonRpc zapewnia niezawodną obsługę błędów?

StreamJsonRpc zapewnia niezawodną obsługę błędów, oferując kompleksowe funkcje do zarządzania wyjątkami i problemami podczas zdalnego wywoływania metod, co pozwala zachować odporność systemu rozproszonego.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie