Heim Backend-Entwicklung C#.Net-Tutorial Detaillierte Erläuterung der Verwendung der SignalR-Technologie unter ASP.NET Core

Detaillierte Erläuterung der Verwendung der SignalR-Technologie unter ASP.NET Core

Feb 10, 2017 pm 05:35 PM

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>
Nach dem Login kopieren

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-*"
Nach dem Login kopieren

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;
   });
}
Nach dem Login kopieren

Fügen Sie den folgenden Code in der Methode „Configure“ in der Startup-Klasse hinzu:

appUseWebSockets();
appUseSignalR();
Nach dem Login kopieren

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);
    }
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

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(&#39;<li><strong>&#39; + originatorUser + &#39;</strong>: &#39; + 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(&#39;<li>&#39; + user + &#39;</li>&#39;);
}
$connectionhublogging = true;
$connectionhubstart()done(function () {
  chatserverconnect(userName);
});
Nach dem Login kopieren

Lass es uns endlich ausführen:

详解在ASP.NET Core下使用SignalR技术


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!

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 KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

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)

Was sind die Alternativen zu Null in der C -Sprache Was sind die Alternativen zu Null in der C -Sprache Mar 03, 2025 pm 05:37 PM

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

So fügen Sie C-Compiler der nächsten Ebene hinzu So fügen Sie C-Compiler der nächsten Ebene hinzu Mar 03, 2025 pm 05:44 PM

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.

Welcher C -Sprachkompiler ist besser? Welcher C -Sprachkompiler ist besser? Mar 03, 2025 pm 05:39 PM

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

Ist Null in der modernen Programmierung in der C -Sprache noch wichtig? Ist Null in der modernen Programmierung in der C -Sprache noch wichtig? Mar 03, 2025 pm 05:35 PM

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

Was sind die Webversionen von C -Sprach Compilern? Was sind die Webversionen von C -Sprach Compilern? Mar 03, 2025 pm 05:42 PM

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

C Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website Zusammenfassung C Sprache Online -Programmierwebsite C Sprachkompiler Offizielle Website Zusammenfassung Mar 03, 2025 pm 05:41 PM

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.

Methode zum Kopieren von Code nach C -Sprachkompiler Methode zum Kopieren von Code nach C -Sprachkompiler Mar 03, 2025 pm 05:43 PM

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

So lösen Sie das Problem, das Ausgangsfenster durch den C -Sprachkompiler nicht zu verbessern So lösen Sie das Problem, das Ausgangsfenster durch den C -Sprachkompiler nicht zu verbessern Mar 03, 2025 pm 05:40 PM

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

See all articles