在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
使用 JSON-RPC 協議,StreamJsonRpc在C#中,能夠在不同的傳輸層之間有效地進行客戶端與伺服器之間的通信。 借助這個函式庫,遠程程序呼叫可以更輕鬆地實現,讓開發人員能夠創建可靠的分佈式系統,其中程式可以像在本地一樣調用遠程伺服器上的方法。 透過允許基於傳輸的數據動態生成 PDFJSON-RPC請求時,StreamJsonRpc 在與 IronPDF(完整的 .NET 框架,用於 PDF 生成和操作)一起使用時可提高應用程序的能力。 對於希望簡化創建自定義報告、發票或任何需要按需生成 PDF 的以文件為中心的應用程序流程的開發人員來說,這個介面相當有幫助。
IronPDF 通過支持將 HTML、ASPX 和原始數據轉換為高質量的 PDF 出版物,為開發人員在內容組織和交付上提供了靈活性和效率。 StreamJsonRpc 和 IronPDF 一起合作,使 C# 開發人員能夠構建響應快速且可擴展的應用程式,輕鬆地將複雜的 PDF 與遠端程序呼叫結合起來。
StreamJsonRpc是一個設計用於促進遠端程序呼叫的跨平台程式庫(遠端程序呼叫)使用輕量且高效的線路協議。 它使用一種底層傳輸機制,支持多種通信通道,如 TCP/IP、命名管道和 HTTP。該庫利用 .NET 事件來處理傳入的請求和回應,提供了一個強大的機制來實現非同步通信。 開發人員可以使用 StreamJsonRpc API 附加方法實現來處理 RPC 請求並定義自訂行為。 StreamJsonRpc 作為 .NET 可移植庫提供,確保了跨不同平台的兼容性,並可無縫整合到各種 .NET 應用程式中。
StreamJsonRpc 的一個關鍵特徵是其對雙向通信的強大支持,包括通知和進度報告。 通過支持包括 HTTP、命名管道和 TCP/IP 在內的各種傳輸協議,它為程序提供了更多的通信選項。 JSON-RPC 消息的序列化和反序列化由 StreamJsonRpc 處理,保證了在多個平台和支持 JSON 的計算機語言中能夠相容。
StreamJsonRpc 是專為性能和擴展性而設計的。 它與現有的 C# 程式相容,可用於構建客戶端-伺服器應用程序、微服務架構、分布式系統及其他需要可靠高效通信的應用程序。 將遠端程序呼叫整合到 C# 專案時,開發人員往往選擇它,因為它的可靠性和易用性。
C# 的 StreamJsonRpc 提供了一個全面的功能集,旨在促進和提升基於 JSON-RPC 協議的客戶端-服務器應用程序通信。
StreamJsonRpc 透過將遠端操作視為本地函數調用,使客戶端可以透過遠端過程調用來調用伺服器上的方法。 藉由隱藏網絡通信的複雜性,這種抽象使得分佈式應用程序的創建更加容易。
該庫支援雙向客戶端-伺服器通信。 即時溝通和更新得以實現,是因為客戶端可以向伺服器提交請求,而伺服器則可以以通知或結果回應。
由於 StreamJsonRpc 不受運輸層限制,它可以在各種運輸協議上運行,包括 HTTP、命名管道和 TCP/IP。由於這種適應性,開發人員可以根據其應用程式的需求和網路設定選擇最佳的運輸方法。
它管理 JSON-RPC 訊息的序列化和反序列化,保證各種平台和支援 JSON 的電腦語言之間的順暢通信。
StreamJsonRpc 支援進度報告技術,以應對長時間運行的活動。 此功能透過使伺服器能夠向客戶端更新當前流程的狀態,來改善用戶體驗和透明度。
為了處理在調用遠程方法時出現的異常和問題,該庫具有廣泛的錯誤處理功能。 這保證了分散系統的彈性和可靠性。
開發人員可以擴展 StreamJsonRpc,以改變其功能或將其與現有的應用程式架構集成在一起。 由於其多功能性,它可以根據多種整合需求和應用場景進行定制。
通過有效的自訂訊息處理和傳輸層管理,StreamJsonRpc 在客戶端伺服器通訊中最大限度地提高了吞吐量,同時保證了低開銷。
通過使用非同步操作,它使應用程式能夠實現更高的響應能力和可擴展性。 它完全支持非同步通信模式。
通過遵循 JSON-RPC 標準,StreamJsonRpc 促進了各種環境中的平滑整合,通過支援 JSON 的其他語言,使 C# 應用程式和服務之間的互操作性得以實現。
除了這些主要功能之外,還有一些超出 JSON-RPC 規範的額外功能,包括支持緊湊的二進制序列化和動態客戶端代理等功能。
必須設置用戶端和伺服器,以便在C#應用程式中創建和配置StreamJsonRpc。 每個部分的詳細說明如下:
首先,確保您的 .NET 項目已準備好。 您可以使用 Visual Studio 或 .NET CLI 創建一個新的。
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
IRON VB CONVERTER ERROR developers@ironsoftware.com
若要實現 JSON-RPC 通訊,請從 NuGet 安裝 StreamJsonRpc 套件。 它包含所需的庫。
dotnet add package StreamJsonRpc
dotnet add package StreamJsonRpc
IRON VB CONVERTER ERROR developers@ironsoftware.com
編寫一個作為 JSON-RPC 伺服器的類別。 觀察這個簡單的例子:
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
var service = new MyService();
//initializes a new instance
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
jsonRpc.Dispose();
}
}
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
var service = new MyService();
//initializes a new instance
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
jsonRpc.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
MyService 類別:指定客戶端可以遠端調用的方法,例如 AddAsync 和 GreetAsync。
這會啟動一個新的 JsonRpc 實例,初始化 MyService,並配置一個 WebSocket 消息處理器來監聽 ws://localhost:8080。服務器將 MyService 曝露為一個新的本地 RPC 目標並開始等待 JSON-RPC 查詢到達。按下按鍵停止監聽並釋放資源。
創建一個作為 JSON-RPC 用戶端的類。 觀察這個簡單的例子:
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// client proxy
await proxy.StartListeningAsync();
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// client proxy
await proxy.StartListeningAsync();
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
proxy.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
此範例建立與 ws://localhost:8080 的連線,以啟動具有 WebSocket 訊息處理程式的 JsonRpc 實例。 然後,它啟用在伺服器上定義的 AddAsync 和 GreetAsync 方法。(MyService)通過建立與 JSON-RPC 伺服器的連接。 最後,顯示伺服器返回的結果,並在 RPC 呼叫完成後釋放資源。
通過將 StreamJsonRpc 與 IronPDF 集成並使用通過 JSON-RPC 查詢交換的數據,可以在 C# 應用程序中動態生成 PDF 頁面。 這是一個設置 IronPDF 和 StreamJsonRpc 的基本指南:
IronPDF可用於 C# 程式來建立、讀取及編輯 PDF 文件。 這個工具使開發人員能夠輕鬆地將HTML、CSS和JavaScript信息轉換為可打印的高質量PDF。 關鍵任務包括添加頁首和頁尾、拆分和合併PDF、添加文件水印和將HTML轉換為PDF。 IronPDF 對於多種應用程序都很有幫助,因為它支持 .NET Framework 和 .NET Core。
由於 PDF 易於使用並提供大量內容,開發人員可以輕鬆地將它們整合到其產品中。 由於 IronPDF 能夠輕鬆處理複雜的佈局和格式,因此它生成的 PDF 幾乎與原始 HTML 文本相匹配。
從 HTML 生成 PDF
將 JavaScript、HTML 和 CSS 轉換為 PDF。 IronPDF 支援媒體查詢和響應式設計,這兩個當代的網頁標準。 這是一種實用的工具,可使用 HTML 和 CSS 動態裝飾 PDF 文件、報告和賬單。
PDF 編輯
現有的 PDF 可以新增文本、照片和其他內容。 從 PDF 文件中提取文本和圖片。 開發人員可以將多個 PDF 合併為一個檔案,或將 PDF 文件拆分為多個獨立的文件。 包含浮水印、註解、標頭和頁尾。
PDF 轉換
使用 IronPDF 可以將各種檔案格式,包括 Word、Excel 和圖像檔案,轉換為 PDF。 使用它,您也可以進行 PDF 至圖像的轉換。(PNG,JPEG 等。).
性能與可靠性
高性能和可靠性是工業環境中期望的設計特性。 IronPDF 輕鬆管理大型文件集。
若要獲取在 .NET 專案中處理 PDF 所需的工具,請安裝 IronPDF 套件。
dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
在服務類 PdfService.cs 中提供方法,以根據接收到的數據創建 PDF。 例如:
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
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
{
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
在伺服器上使用 Program.cs 作為接口,通過流式 JSON-RPC 提供 GeneratePdfAsync 方法:
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var service = new PdfService();
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
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)
{
var service = new PdfService();
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
jsonRpc.AddLocalRpcTarget(service);
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
Console.ReadKey();
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
要連接到伺服器並請求建立 PDF,請實施 StreamJsonRpc 客戶端。(ClientProgram.cs):
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
class ClientProgram
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
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 PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
class ClientProgram
{
static async Task Main(string[] args)
{
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
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 PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
proxy.Dispose();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
PdfService.cs 類別是 StreamJsonRpc 伺服器實作的一個重要部分,使 C# 應用程式更輕鬆地使用 IronPDF 生成 PDF 文件。 透過使用 IronPDF 的 RenderHtmlAsPdf,該服務類別包含用於將 HTML 資料轉換為 PDF 格式的方法。 可以透過非同步的 GeneratePdfAsync 方法接受 HTML 內容作為輸入。(async Task 生成PdfAsync(字符串 htmlContent)).
此方法創建一個 HtmlToPdf 的實例來進行轉換,使用 RenderHtmlAsPdf 生成 PDF 文件。(html內容). 創建的 PDF 二進制數據然後由該方法異步檢索(pdf.BinaryDataAsync()),隨後將資料作為位元組返回[]数组。
此方法保證快速和靈活的 PDF 生成,使其適合需要快速創建文檔的應用程式。 PDF 生成邏輯包含在 PdfService.cs 中,這使開發人員能夠輕鬆地整合並通過 StreamJsonRpc 展示此功能。 這使得遠程客戶能夠在保留其伺服器端設計的模塊化和清晰性的同時,順利調用 PDF 生成任務。
總之,開發人員可以創建支持遠程過程調用的可靠且高效的 .NET 應用程序。(遠端程序呼叫)並結合 StreamJsonRpc 與 IronPDF,充分利用強大的 PDF 生產能力。 使用 JSON-RPC 這種輕量級的遠端程序調用協議,StreamJsonRpc 能夠實現客戶端和伺服器元件之間的流暢通信。 開發者可以配合IronPDF使用,以生成依賴於這些遠端呼叫結果的動態、資料驅動PDF。
在準備報告、發票或其他必須代表最新數據的文件時,此整合非常有用,因為它允許即時數據檢索和 PDF 輸出。 這些技術的整合優化了開發流程,提升了性能,並增強了應用程式有效滿足複雜業務需求的能力。
使用IronPDF和IronSoftware 開發工具,開發人員可以更快地創建更多的網絡應用程式和功能,起始價格僅為 $749。這是通過將其核心概念與極具靈活性的 Iron Software 工具箱結合起來實現的。
如果所有與專案相關的授權選項都被清楚描述,開發人員將更容易選擇最佳模型。 上述優勢使開發人員能夠及時、協調和高效地創建一系列問題的解決方案。