


Detaillierte Erläuterung der Verwendung der SignalR-Technologie unter ASP.NET Core
In diesem Artikel wird hauptsächlich die Verwendung der SignalR-Technologie unter ASP.NET Core vorgestellt. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf
1. Vorwort
Das letzte Mal haben wir über die Verwendung von ASP.NET Core gesprochen Verwenden Sie WebSocket in . Der Protagonist ist dieses Mal SignalR, das uns ein Framework zur Verfügung stellt, um den Betrieb von WebSocket zu vereinfachen.
ASP .NET SignalR ist eine Klassenbibliothek unter ASP.NET, die Echtzeitkommunikation in ASP.NET-Webprojekten erreichen kann. Was ist Echtzeitkommunikation im Web? Es ermöglicht dem Client (Webseite) und dem Server, sich gegenseitig über Nachrichten und Aufrufmethoden zu informieren. Dies geschieht natürlich in Echtzeit. WebSockets ist eine neue API, die von HTML5 bereitgestellt wird und eine Socket-Verbindung zwischen einer Webseite und dem Server herstellen kann. Wenn WebSockets verfügbar sind (dh der Browser unterstützt Html5), verwendet SignalR WebSockets andere Technologien, um den gleichen Effekt zu gewährleisten.
Natürlich bietet SignalR auch eine sehr einfache und benutzerfreundliche High-Level-API, die es dem Server ermöglicht, JavaScript-Funktionen auf dem Client einzeln oder in Stapeln aufzurufen, und es ist sehr praktisch, Verbindungen zu verwalten B. die Verbindung des Clients mit dem Server oder die Trennung, Clientgruppierung und Clientautorisierung sind mit SignalR sehr einfach zu implementieren.
2. Aktuelle Situation von SignalR
Wir wissen, dass SignalR nicht in der ASP.NET Core 1.0.x-Version enthalten ist, sondern die SignalR-Technologie Plan Es ist in ASP.NET Core Version 1.2 integriert, und sein Entwicklungsteam wird auch TypeScript verwenden, um seinen Javascript-Client neu zu schreiben. Die Serverseite wird beispielsweise auch der Entwicklungsmethode von ASP.NET Core nahe kommen in das ASP.NET Core-Abhängigkeitsinjektionsframework.
Die aktuelle Situation ist, dass die SignalR-Technologie nicht in 1.0 verwendet werden kann. Die in diesem Artikel implementierten Demos werden alle unter 1.1 durchgeführt.
3. SignalR integrieren
Natürlich ist ASP.NET Core 1.2 noch einige Zeit von seiner offiziellen Veröffentlichung entfernt, und das ist es derzeit auch Da wir nicht bereit sind, die SignalR-Lösung zu integrieren, müssen wir SignalR manuell integrieren.
Um SignalR in ASP.NET Core zu verwenden, müssen Sie zunächst auf das NuGet-Paket von Microsoft.AspNetCore.SignalR.Server und Microsoft.AspNetCore.WebSockets verweisen.
Natürlich gibt es, wie oben erwähnt, derzeit keinen ASP.NET Core, der SignalR nicht integriert, daher ist das SignalR-Paket nicht auf NUGET zu finden. Wenn wir eine Referenz hinzufügen möchten, müssen wir zu gehen MyGet, um es zu finden.
1. NuGet-Quelle hinzufügen
Erstellen Sie eine neue Datei mit dem Namen NuGet.Config im Programmstammverzeichnis mit folgendem Inhalt:
<?xml version="0" encoding="utf-8"?> <configuration> <packageSources> <clear/> <add key="aspnetcidev" value="https://dotnetmygetorg/F/aspnetcore-ci-dev/api/v3/indexjson"/> <add key="apinugetorg" value="https://apinugetorg/v3/indexjson"/> </packageSources> </configuration>
Natürlich können wir diese Assembly auch referenzieren, indem wir die Quelle der NuGet-Pakete in Visual Studio festlegen.
2. Fügen Sie einen Verweis auf project.json hinzu
"MicrosoftAspNetCoreSignalRServer": "0-*", "MicrosoftAspNetCoreWebSockets": "0-*"
Sie können feststellen, dass die Version von SignalR ist die Alpha-Version 0.2.0, daher können sich nachfolgende Versionen stark ändern! Ich habe gehört, dass es leicht umzuschreiben ist.
Es ist erwähnenswert, dass SignalR derzeit nur auf ASP.NET Core 1.1 und höher verfügbar ist. Die .NET Core SDK-Version, die ich in diesem Artikel verwendet habe, ist 1.0.0-preview2-003131, daher zitiere ich Studenten, die Wenn Sie Probleme haben, können Sie versuchen, die CoreApp-Version auf 1.1 zu ändern. Außerdem werden alle AspNetCore-Assemblys auf Version 1.1 geändert.
3. Konfigurationscode hinzufügen
Wir müssen den folgenden Code in der Methode „ConfigureServices“ in der Startup-Klasse hinzufügen:
public void ConfigureServices(IServiceCollection services) { servicesAddSignalR(options => { optionsHubsEnableDetailedErrors = true; }); }
Fügen Sie den folgenden Code in der Methode „Configure“ in der Startup-Klasse hinzu:
appUseWebSockets(); appUseSignalR();
4. Fügen Sie eine HUB-Klasse hinzu
Hier implementieren wir nur eine kleine Demo, einen einfachen Chatroom, in den mehrere Personen eintreten und die von jedem gesendeten Nachrichten sehen können:
public class ChatHub : Hub { public static List<string> ConnectedUsers; public void Send(string originatorUser, string message) { ClientsAllmessageReceived(originatorUser, message); } public void Connect(string newUser) { if (ConnectedUsers == null) ConnectedUsers = new List<string>(); ConnectedUsersAdd(newUser); ClientsCallergetConnectedUsers(ConnectedUsers); ClientsOthersnewUserAdded(newUser); } }
5. Der Client unterstützt
Erstellen Sie eine statische HTML-Datei mit dem Namen chat.html im wwwroot-Verzeichnis mit folgendem Inhalt:
<!DOCTYPE html> <html> <head> <title>Awesome Chat Application</title> <meta charset="utf-8" /> </head> <body> <style type="text/css"> userListp{ float: right; } </style> <ul id="messages"></ul> <input type="text" id="messageBox" /> <input type="button" id="sendMessage" value="Send Message!" /> <p class="userListp"> <ul id="userList"> </ul> </p> <script src="http://ajaxaspnetcdncom/ajax/jQuery/jquery-minjs"></script> <script src="http://ajaxaspnetcdncom/ajax/signalr/jquerysignalr-minjs"></script> <script src="signalr/hubs"></script> <script src="chatjs"></script> </body> </html>
Erstellen Sie eine chat.js im selben Verzeichnis und fügen Sie das Skript hinzu, um die Funktion zu implementieren:
var userName = prompt("Enter your name: "); var chat = $connectionchatHub; chatclientmessageReceived = function (originatorUser, message) { $("#messages")append('<li><strong>' + originatorUser + '</strong>: ' + message); }; chatclientgetConnectedUsers = function (userList) { for (var i = 0; i < userListlength; i++) addUser(userList[i]); }; chatclientnewUserAdded = function (newUser) { addUser(newUser); } $("#messageBox")focus(); $("#sendMessage")click(function () { chatserversend(userName, $("#messageBox")val()); $("#messageBox")val(""); $("#messageBox")focus(); }); $("#messageBox")keyup(function (event) { if (eventkeyCode == 13) $("#sendMessage")click(); }); function addUser(user){ $("#userList")append('<li>' + user + '</li>'); } $connectionhublogging = true; $connectionhubstart()done(function () { chatserverconnect(userName); });
Lass es uns endlich ausführen:
Das Obige ist der gesamte Inhalt dieses Artikels Hilfreich für das Lernen aller. Bitte unterstützen Sie die chinesische PHP-Website.
Ausführlichere Informationen zur Verwendung der SignalR-Technologie unter ASP.NET Core finden Sie auf der chinesischen PHP-Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Artikel wird die Herausforderungen des Nullzeigers in C untersucht. Es argumentiert, dass das Problem nicht null selbst, sondern seinen Missbrauch ist. Der Artikel beschreibt Best Practices zur Verhinderung der Verhindern, einschließlich Vor-Dre-Dre-Dereferenz-Überprüfungen, Zeiger initiali

In diesem Artikel wird erläutert, wie Sie neue Zeilenzeichen in C mit der \ n Escape -Sequenz innerhalb von Printf erstellen und Funktionen setzt. Es beschreibt die Funktionalität und liefert Codebeispiele, die die Verwendung für Zeilenumbrüche in der Ausgabe demonstrieren.

Dieser Artikel führt Anfänger bei der Auswahl eines C -Compilers. Es wird argumentiert, dass GCC aufgrund seiner Benutzerfreundlichkeit, der breiten Verfügbarkeit und der umfangreichen Ressourcen für Anfänger am besten geeignet ist. Es wird jedoch auch GCC, Clang, MSVC und TCC vergleicht, wodurch ihre Unterschiede hervorgehoben werden

Dieser Artikel betont die anhaltende Bedeutung von NULL in der modernen C -Programmierung. Trotz Fortschritten bleibt NULL für die explizite Zeigerverwaltung von entscheidender Bedeutung und verhindert Segmentierungsfehler, indem das Fehlen einer gültigen Speicheradresse markiert wird. Bestes Prac

Dieser Artikel bewertet Online -C -Compiler für Anfänger, die sich auf die Benutzerfreundlichkeit und Debugging -Funktionen konzentrieren. OnlineGDB und Repl.it sind für ihre benutzerfreundlichen Schnittstellen und hilfreichen Debugging-Tools hervorgehoben. Andere Optionen wie Programmiz und Compil

Dieser Artikel vergleicht Online -C -Programmierplattformen und zeigt Unterschiede in Funktionen wie Debugging -Tools, IDE -Funktionalität, Standardkonformität und Speicher-/Ausführungsgrenzen. Es wird argumentiert, dass die "beste" Plattform von den Benutzerbedürfnissen abhängt.

In diesem Artikel werden effizientes Codekopieren in C -IDEs erläutert. Es wird betont, dass das Kopieren eine IDE -Funktion ist, keine Compiler -Funktion, und Details Strategien für eine verbesserte Effizienz, einschließlich der Verwendung von IDE -Auswahltools, Codefalten, Suchen/Ersetzen, Templa

In diesem Artikel wird die Ausgabefenster in der C -Programmkompilierung fehlt. Es werden Ursachen untersucht, wie das Ausführen der ausführbaren Datei, Programmfehler, falsche Compiler -Einstellungen, Hintergrundprozesse und schnelle Programmabschluss. Lösungen umfassen Ch
