Heim Backend-Entwicklung C++ Wie rufe ich SignalR Core Hub-Methoden von einem ASP.NET Core Controller auf?

Wie rufe ich SignalR Core Hub-Methoden von einem ASP.NET Core Controller auf?

Jan 05, 2025 pm 01:47 PM

How to Call SignalR Core Hub Methods from an ASP.NET Core Controller?

SignalR Core Hub-Methoden vom Asp.Net Core Controller aufrufen

In diesem Artikel erfahren Sie, wie Sie SignalR Core Hub-Methoden aufrufen aus einem ASP.NET Core-Controller heraus. Diese Funktionalität ermöglicht die serverseitige Kommunikation mit verbundenen Clients, um Ereignisse zu übertragen oder Echtzeitdaten zu aktualisieren.

Problemübersicht

Im bereitgestellten Szenario ein ASP.NET Die Kernanwendung empfängt nach Abschluss der Aufgabe eine Anfrage von einem Windows-Dienst. Die Aufgabe besteht darin, alle verbundenen SignalR Core-Clients über dieses Ereignis zu benachrichtigen. Allerdings kann der Windows-Dienst keine direkte Verbindung zu SignalR herstellen.

Lösung 1: HubContext in Controller einfügen

Ein Ansatz besteht darin, den entsprechenden HubContext in die Controller-Klasse einzufügen . Dies ermöglicht den direkten Aufruf von Hub-Methoden aus den Aktionsmethoden des Controllers.

[Route("API/vardesigncomm")]
public class VarDesignCommController : Controller
{
    [HttpPut("ProcessVarDesignCommResponse/{id}")]
    public async Task<IActionResult> ProcessVarDesignCommResponse(int id)
    {
        await this.HubContext.Clients.All.InvokeAsync("Completed", id);
        return new JsonResult(true);
    }

    private IHubContext<VarDesignHub> HubContext
    {
        get; set;
    }
}
Nach dem Login kopieren

Dieser Ansatz ermöglicht die direkte Kommunikation mit allen verbundenen Clients, kann jedoch je nach Anzahl der Clients Auswirkungen auf die Leistung haben.

Lösung 2: Typisierte Hubs und Client-Schnittstellen

Ein anderer Ansatz besteht darin, eine typisierte Client-Schnittstelle zu definieren und von dieser zu erben der entsprechende Hub mit der typisierten Client-Schnittstelle. Dies ermöglicht die Injektion des typisierten HubContext in den Controller für bestimmte Methodenaufrufe.

Typisierte Client-Schnittstelle:

public interface ITypedHubClient
{
    Task BroadcastMessage(string name, string message);
}
Nach dem Login kopieren

Hub erbt von der typisierten Client-Schnittstelle :

public class ChatHub : Hub<ITypedHubClient>
{
    public void Send(string name, string message)
    {
        Clients.All.BroadcastMessage(name, message);
    }
}
Nach dem Login kopieren

Controller-Injektion und Methode Aufruf:

[Route("api/demo")]
public class DemoController : Controller
{
    IHubContext<ChatHub, ITypedHubClient> _chatHubContext;

    public DemoController(IHubContext<ChatHub, ITypedHubClient> chatHubContext)
    {
        _chatHubContext = chatHubContext;
    }

    [HttpGet]
    public IEnumerable<string> Get()
    {
        _chatHubContext.Clients.All.BroadcastMessage("test", "test");
        return new string[] { "value1", "value2" };
    }
}
Nach dem Login kopieren

Dieser Ansatz ermöglicht eine gezieltere und effizientere Kommunikation mit Kunden.

Das obige ist der detaillierte Inhalt vonWie rufe ich SignalR Core Hub-Methoden von einem ASP.NET Core Controller auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte Mar 03, 2025 pm 05:53 PM

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

GULC: C -Bibliothek von Grund auf neu gebaut GULC: C -Bibliothek von Grund auf neu gebaut Mar 03, 2025 pm 05:46 PM

GULC: C -Bibliothek von Grund auf neu gebaut

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Mar 03, 2025 pm 05:52 PM

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Mar 12, 2025 pm 04:50 PM

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Mar 03, 2025 pm 05:53 PM

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Mar 03, 2025 pm 05:51 PM

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe eindeutiger Gebrauch und Phrasenfreigabe Mar 03, 2025 pm 05:51 PM

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Mar 12, 2025 pm 04:52 PM

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

See all articles