IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Signalr C# (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Nowoczesna sieć opiera się na interaktywności i informacji zwrotnej w czasie rzeczywistym. Podczas tworzenia aplikacji responsywnych niezbędna jest funkcjonalność internetowa działająca w czasie rzeczywistym. Właśnie w tym zakresie SignalR wyróżnia się na tle innych rozwiązań. ASP.NET Core SignalR to biblioteka, która sprawia, że dodawanie funkcji internetowych działających w czasie rzeczywistym do aplikacji jest prostsze, niż mogłoby się wydawać.

W tym samouczku wyruszymy w podróż po podstawach i niuansach SignalR. Zaczynamy!

Wprowadzenie do SignalR w ASP.NET Core

ASP.NET Core SignalR udostępnia interfejs API do tworzenia funkcji internetowych działających w czasie rzeczywistym przy użyciu WebSockets i innych technologii, takich jak zdarzenia wysyłane przez serwer. Nie ogranicza się to wyłącznie do ASP.NET Core. Z SignalR można korzystać z różnymi klientami, takimi jak przeglądarka lub aplikacja mobilna, co zapewnia natychmiastową aktualizację połączonych klientów.

Konfiguracja środowiska programistycznego

Aby rozpocząć, potrzebujesz:

Tworzenie centrum SignalR

Podstawą SignalR jest hub SignalR, centralny punkt interakcji zarówno dla klienta, jak i serwera.

Utwórz nowy projekt ASP.NET Core. Dodaj teraz nową klasę i nazwij ją ChatHub. Będzie to pełnić rolę naszego centrum SignalR.

using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;

// Define a SignalR Hub class named ChatHub
public class ChatHub : Hub
{
    // Asynchronous method to send messages
    public async Task SendMessage(string user, string message)
    {
        // Send a message to all connected clients
        await Clients.All.SendAsync("ReceiveMessage", user, message);
    }
}

W klasie Startup zintegrować nasz hub.

public class Startup
{
    // Configure services and add SignalR
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSignalR(); // Add SignalR services
    }

    // Configure the app to use SignalR and map the hub
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // Setup endpoint to route to ChatHub
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapHub<ChatHub>("/chatHub");
        });
    }
}

Wdrożenie po stronie klienta

SignalR jest wszechstronny. Chociaż ten samouczek skupia się na ASP.NET Core i bibliotece klienckiej JavaScript, SignalR obsługuje różne platformy klienckie, od .NET po Java.

Korzystanie z biblioteki klienckiej SignalR

Biblioteka kliencka SignalR umożliwia kodowi po stronie klienta bezpośrednie łączenie się i komunikowanie z serwerem. W naszym przykładzie użyjmy JavaScript.

Najpierw dodaj bibliotekę kliencką SignalR JavaScript:

<script src="https://cdn.jsdelivr.net/npm/@microsoft/signalr@3.1.8/dist/browser/signalr.js"></script>
HTML

Teraz możesz połączyć się z hubem:

// Create a connection to the SignalR hub
const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chatHub") // The hub URL
    .build();

// Start the connection
connection.start().catch(err => console.error(err.toString()));

// Setup a listener for receiving messages
connection.on("ReceiveMessage", (user, message) => {
    console.log(`${user} says: ${message}`);
});
JavaScript

Ten prosty kod po stronie klienta łączy się z hubem i nasłuchuje na wszelkie nadawane komunikaty.

Funkcjonalność czasu rzeczywistego w praktyce

Wysyłanie wiadomości

Korzystając z naszych wcześniejszych fragmentów kodu po stronie klienta i serwera, wysyłanie wiadomości jest bardzo proste. Komunikację może zainicjować zarówno serwer, jak i klient.

Od strony serwera:

// Send a message from the server to all connected clients
await Clients.All.SendAsync("ReceiveMessage", "Server", "Hello from server!");

A od klienta:

// Send a message from the client to the server
connection.send("SendMessage", "Client", "Hello from client!")
    .catch(err => console.error(err.toString()));
JavaScript

Zaawansowana komunikacja w czasie rzeczywistym

ASP.NET Core SignalR oferuje zaawansowane funkcje komunikacji w czasie rzeczywistym:

  1. Grupowanie połączeń: Podział połączonych klientów na grupy i wysyłanie komunikatów do określonych segmentów.
  2. Obsługa rozłączeń: Automatyczne zarządzanie połączeniami i rozłączeniami klientów.
  3. Protokół binarny: Chociaż SignalR domyślnie korzysta z protokołu tekstowego, obsługuje również protokół binarny.

SignalR z usługą Azure SignalR Service

Aby uzyskać skalowalną funkcjonalność w czasie rzeczywistym, zintegruj usługę Azure SignalR. Ta w pełni zarządzana usługa obsługuje ogromną liczbę jednoczesnych połączeń, dzięki czemu idealnie nadaje się do aplikacji o wysokich wymaganiach.

Integracja usługi Azure SignalR:

  1. Zainstaluj pakiet Azure SignalR SDK.
  2. Użyj usługi Azure Service Bus do obsługi backplane.
  3. Dostosuj klasę Startup do używania Azure SignalR.
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Add Azure SignalR services
        services.AddSignalR().AddAzureSignalR();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // Use Azure SignalR and map hub with routes
        app.UseAzureSignalR(routes =>
        {
            routes.MapHub<ChatHub>("/chatHub");
        });
    }
}

Iron Suite – rozszerzenie SignalR o narzędzia Premium .NET

Chociaż ASP.NET Core SignalR zapewnia doskonałą podstawę dla funkcjonalności internetowej w czasie rzeczywistym, programiści często poszukują narzędzi, które poprawią ogólne wrażenia i funkcjonalność. W tym miejscu na scenę wkracza pakiet bibliotek Iron Software Suite.

Iron Suite to pakiet wysokiej jakości bibliotek .NET, zaprojektowany w celu zwiększenia wydajności aplikacji ASP.NET Core, w tym tych wykorzystujących SignalR. Każdy produkt z tej Suite oferuje unikalne możliwości, zapewniając bogatsze wrażenia podczas korzystania z aplikacji. Przyjrzyjmy się bliżej tej ofercie:

IronPDF

Signalr C# (Jak to działa dla deweloperów) Rysunek 1

Dowiedz się więcej o możliwościach IronPDF, które pozwalają generować, edytować i odczytywać pliki PDF w aplikacjach .NET. Wyobraź sobie integrację SignalR w scenariuszu, w którym zespół współpracuje nad dokumentem w czasie rzeczywistym. W miarę wprowadzania zmian dokument może być na bieżąco konwertowany do formatu PDF, a aktualizacje są płynnie przesyłane do wszystkich podłączonych klientów. Funkcjonalność SignalR działająca w czasie rzeczywistym w połączeniu z możliwościami IronPDF może zrewolucjonizować narzędzia do współpracy.

IronPDF konwertuje HTML, adresy URL i całe strony internetowe na doskonałej jakości pliki PDF, identyczne z oryginałem. Idealnie nadaje się do zapisywania raportów online, faktur lub wszelkich informacji internetowych, które chcesz zachować. Chcesz przekonwertować HTML na PDF? Wypróbuj IronPDF już dziś!

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");
    }
}

IronXL

Signalr C# (Jak to działa dla deweloperów) Rysunek 2

Jeśli chodzi o pracę z arkuszami kalkulacyjnymi Excel, Explore IronXL Features jest mistrzem. W środowisku biznesowym arkusze kalkulacyjne odgrywają kluczową rolę. Włączenie SignalR do IronXL oznacza, że zespoły finansowe mogą pracować nad arkuszami budżetowymi w czasie rzeczywistym, obserwując zmiany na bieżąco. Wyobraź sobie scenariusz, w którym dane z różnych działów trafiają do scentralizowanego arkusza Excel, z aktualizacjami w czasie rzeczywistym dla wszystkich zainteresowanych stron. Dzięki tej kombinacji połączenie komunikacji w czasie rzeczywistym i dynamicznego zarządzania arkuszami kalkulacyjnymi staje się rzeczywistością.

IronOCR

Signalr C# (Jak to działa dla deweloperów) Rysunek 3

Optyczne rozpoznawanie znaków (OCR) stało się podstawowym elementem współczesnych aplikacji. Zobacz, jak IronOCR w praktyce umożliwia programistom .NET wyodrębnianie tekstu z obrazów i dokumentów. Połączenie tego z funkcjonalnością SignalR działającą w czasie rzeczywistym może całkowicie zmienić sytuację. Rozważmy platformę, na której użytkownicy przesyłają obrazy zawierające dane tekstowe. SignalR może służyć do powiadamiania użytkowników w czasie rzeczywistym po przetworzeniu obrazów przez IronOCR, dzięki czemu ekstrakcja danych staje się interaktywna i natychmiastowa.

IronBarcode

Signalr C# (Jak to działa dla deweloperów) Rysunek 4

BarCode jest integralną częścią zarządzania zapasami, systemów biletowych i nie tylko. Odkryj możliwości IronBarcode, które ułatwiają tworzenie i odczytywanie kodów kreskowych. Pomyśl teraz o zintegrowaniu tego z SignalR w systemie zarządzania magazynem. W miarę skanowania produktów stan magazynowy jest aktualizowany w czasie rzeczywistym, co pozwala powiadamiać podłączonych klientów o poziomach zapasów i zapewnia płynne działanie logistyki.

Wnioski

Signalr C# (Jak to działa dla deweloperów) Rysunek 5

Połączenie ASP.NET Core SignalR z potężnymi narzędziami Iron Suite zapewnia lepsze wrażenia zarówno dla programistów, jak i użytkowników końcowych. Funkcjonalność internetowa w czasie rzeczywistym staje się nie tylko narzędziem komunikacji, ale także narzędziem transformacyjnym, które w połączeniu z odpowiednimi zasobami, takimi jak Iron Suite, może na nowo zdefiniować aplikacje interaktywne.

Warto zwrócić uwagę na propozycję wartości oferowaną przez Iron Suite. Każda licencja produktu zaczyna się od $999, oferując programistom zestaw zaawansowanych funkcji. Jeśli jednak nie jesteś pewien, czy chcesz od razu się zaangażować, każdy z tych produktów oferuje bezpłatną wersję próbną produktów Iron Software. Pozwala to przetestować możliwości przed podjęciem decyzji.

A jeśli rozważasz integrację wielu narzędzi, mamy dla Ciebie fantastyczną wiadomość: możesz kupić cały pakiet Iron Suite, zyskując dodatkową wartość za cenę zaledwie dwóch produktów! To nie tylko gwarantuje, że otrzymasz najlepszy zwrot z inwestycji, ale także wyposaża Cię w kompleksowy zestaw narzędzi, które zrewolucjonizują Twoje aplikacje .NET Core SignalR.

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ącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta