IRONSOFTWAREHOME
開發者更新

C# WebRTC(對於開發者的運行原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年4月23日

WebRTC 代表網路即時通訊,一種技術允許不同平台間的網頁瀏覽器直接進行即時溝通,資料傳輸不需要中介伺服器,除初始連接設置外。它支持影片、音訊和通用資料在對等點之間共享,使其成為開發即時通訊應用程式的強大工具。

本教程介紹如何使用C#建立一個WebRTC解決方案,重點是.NET Core框架,並提供設置訊號伺服器、理解TURN伺服器及將WebRTC整合到您的IronPDFC#應用程式中的深入見解。

設置您的環境

要在C#中開始開發WebRTC應用程式,您需要設置您的開發環境。 這需要安裝.NET Core,它是一個跨平台的.NET版本,用於建立網站、服務和控制台應用程式。您可以從Microsoft的官方網站下載並安裝.NET Core。安裝後,您可以使用Visual Studio這個受歡迎的C#開發整合開發環境(IDE),或選擇其他編輯器來編寫您的程式碼。

建立一個新控制台應用程式

首先設置一個新的控制台應用程式專案。 開啟您的終端或命令行介面,移動到計劃建立專案的目錄。 接下來,執行以下命令:

dotnet new console -n WebRTCSample
SHELL

此命令建立一個名為WebRTCSample的新目錄,其中包含一個簡單的"Hello World"控制台應用程式。 進入您的專案目錄,您就準備開始編寫WebRTC應用程式的程式碼。

了解WebRTC和訊號

WebRTC使實時通信成為可能,但需要一種機制來協調通信並發送控制消息,這個過程稱為訊號。 訊號用於交換有關通信會議的元資料,例如會議描述和建立連接的候選資訊。 C#應用程式可以通過任何消息傳輸機制來實現訊號,例如WebSockets或REST API。

在.NET Core中實現一個訊號伺服器

訊號伺服器在建立直接的對等連接之前充當交換對等間消息的中介。 您可以通過建立一個處理WebSocket連接的簡單網頁程式來使用.NET Core實現一個訊號伺服器。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

public class Startup
{
    // Configures services for the web application.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options => options.AddDefaultPolicy(
            builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()));
        services.AddSignalR();
    }
  
    // Configures the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseCors();
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapHub<SignalingHub>("/signal");
        });
    }
}

這段程式碼片段設置了一個基本的.NET Core應用程式,其中包含SignalR,一個用於向應用程式新增實時網頁功能的程式庫。SignalR簡化了向應用程式新增實時網頁功能的過程,使其成為我們的訊號伺服器的一個不錯選擇。

使用WebRTC連接對等端

設置好訊號伺服器後,下一步是使用WebRTC在客戶端之間建立對等連接。 這涉及到在每個客戶端上建立RTCPeerConnection物件,交換邀約和應答消息,並協商連接細節。

建立對等連接

在您的C#應用程式中,您將主要管理訊號部分,並可能通過瀏覽器或像React Native這樣的平台進行WebRTC API的互動。以下是一個從網頁客戶端啟動對等連接的範例:

// Create a new RTCPeerConnection instance
const peerConnection = new RTCPeerConnection();

// Listen for ICE candidates and send them to the signaling server
peerConnection.onicecandidate = event => {
  if (event.candidate) {
    sendMessage('new-ice-candidate', event.candidate);
  }
};

// Handle incoming media streams
peerConnection.ontrack = event => {
  // Display the video or audio stream
};
JavaScript

這個JavaScript程式碼片段展示了如何建立一個新的對等連接,處理ICE候選者,並設置回調以顯示傳入的媒體流。

交換邀約和應答

為了建立連接,一個對等建立一個邀約,另一個則用應答做出回應。 這些是通過之前實現的訊號伺服器交換的。

// Create an offer for the peer connection
async function createOffer() {
  const offer = await peerConnection.createOffer();
  await peerConnection.setLocalDescription(offer);
  sendMessage('offer', offer);
}

// Create an answer after receiving an offer
async function createAnswer(offer) {
  await peerConnection.setRemoteDescription(new RTCSessionDescription(offer));
  const answer = await peerConnection.createAnswer();
  await peerConnection.setLocalDescription(answer);
  sendMessage('answer', answer);
}
JavaScript

將WebRTC整合到.NET應用程式中

雖然核心的WebRTC執行通常在瀏覽器或其他客戶端環境中處理,但.NET應用程式可以促進訊號過程,管理會議控制,並與其他服務像是TURN伺服器進行NAT穿透互動。 對於桌面或伺服器端應用程式,可以使用類似Pion WebRTC(適用於Go的開源程式庫)這樣的程式庫進行包裝或與C#結合使用來處理WebRTC流量。

運行您的應用程式

要運行您的.NET Core應用程式,請在終端中導航到專案目錄並執行:

dotnet run
SHELL

該命令編譯並運行您的應用程式,啟動您所實現的訊號伺服器。 現在您的網頁客戶可以連接到該伺服器以開始交換訊號消息。

IronPDF簡介

C# WebRTC(開發者如何使用):圖1 - IronPDF網頁

IronPDF是一個多功能的程式庫,為.NET應用程式提供PDF生成和操作功能,使開發人員能夠以程式方式建立、讀取和編輯PDF文件。 IronPDF支持多種任務,包括從HTML生成PDF、填寫表單、提取文字和保護文件。 這使得它在根據使用者資料或應用程式輸出生成報告、發票和動態文件時非常有用。

IronPDF的一個關鍵特點是其HTML轉PDF功能,能保持您的版面和樣式完整無虞。 它將網頁內容生成PDF,使其非常適合報告、發票和文件。 您可以輕鬆地將HTML文件、URL和HTML字串轉換為PDF。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

安裝IronPDF

在您能夠在專案中使用IronPDF之前,您需要將其新增到您的.NET應用程式中。 這可以使用NuGet套件管理器進行,這簡化了在您的專案中管理外部程式庫的過程。 要安裝IronPDF,您可以在NuGet套件管理器控制台中使用以下命令:

PM > Install-Package IronPdf

使用案例:在WebRTC應用程式中使用IronPDF生成會議紀要PDF

想象一下開發一個使用WebRTC的實時通訊應用程式,旨在用於線上會議或虛擬教室。 這個應用程式允許使用者進行音影片通話、分享螢幕並實時協作文件。此應用程式的一個有價值的功能是能夠自動生成並分發會議紀要或會議摘要,其中包括討論的要點、做出的決策和行動項,並以PDF格式呈現。 這就是IronPDF發揮作用的地方。

實施步驟

  1. **捕捉會議內容:**在整個WebRTC會議期間,記錄基於文字的內容,如聊天消息、共享筆記或強調的行動項。 這些內容可以被格式化成HTML,允許輕鬆的樣式和組織(例如,使用清單表示行動項或標題表示關鍵話題)。
  2. **生成HTML模板:**在會議結束時,將捕捉到的內容格式化到一個HTML模板中。 這個模板包括會議的標題、日期、參與者以及不同型別內容的結構化部分(討論要點、決策、行動項)。
  3. **將HTML轉換為PDF:**會議結束且HTML模板準備好後,使用IronPDF將該HTML內容轉換成PDF文件。 這種轉換確保HTML中定義的樣式和版面在PDF中得到保留,使文件易於閱讀且外觀專業。

以下是一個範例的PDF程式碼:

using IronPdf;

public class MeetingMinutesGenerator
{
    public static void GenerateMeetingMinutesPdf(string htmlContent, string outputPath)
    {
        // Initialize the HTML to PDF converter
        var renderer = new HtmlToPdf();
        renderer.PrintOptions.MarginTop = 40;
        renderer.PrintOptions.MarginBottom = 40;
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 12
        };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 12
        };
        // Convert the HTML content to a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs(outputPath);
        Console.WriteLine("Meeting minutes PDF generated.");
    }
}

結論

在本文中,我們探討了如何使用C#和.NET Core建立一個基本的WebRTC應用程式。 我們涵蓋了設置開發環境、建立新控制台應用程式、實現信號伺服器以及啟動對等連接以進行實時通信。 WebRTC為實時通信應用程式打開了眾多可能性,透過C#和.NET Core,您可以建立跨平台和裝置運行的強大且可擴展的解決方案。 欲獲取授權和購買資訊,請存取IronPDF授權頁面。 一旦您決定購買,許可證從$999起始。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起