Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in den SignalR Self Host Multi-Terminal-Nachrichten-Push-Dienst (2)

Einführung in den SignalR Self Host Multi-Terminal-Nachrichten-Push-Dienst (2)

零下一度
零下一度Original
2017-07-02 11:59:581900Durchsuche

In diesem Artikel wird hauptsächlich der zweite Teil von Multi-Terminal-Nachrichten-Push-Diensten wie SignalR Self Host+MVC vorgestellt. Er hat einen gewissen Referenzwert.

1. Übersicht

Im letzten Artikel haben wir einfach den selbstgehosteten SignalR-Server implementiert. Heute werden wir das Konsolenprogramm implementieren, um den SignalR-Server aufzurufen, um Informationen zu übertragen Daher besteht unsere Demo-Richtung darin, Nachrichten an bestimmte Personen zu senden. Chat-Nachrichten und globale Übertragungen werden wir hier nicht demonstrieren.

2. Erstellen Sie einen Konsolen-Client

1. Erstellen Sie eine neue Konsole mit dem Namen Clinet unter der SignalRProject-Lösung

2. Geben Sie den folgenden Befehl in die Paketverwaltungskonsole ein:


Install-Package Microsoft.AspNet.SignalR.Client

3. Ändern Sie den Program.cs-Code des Clinet-Projekts


using Microsoft.AspNet.SignalR.Client;
using System;

namespace Clinet
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.Write("请输入用户名: ");
      string clientName = Console.ReadLine();


      var url = "http://localhost:10086/";
      var connection = new HubConnection(url);
      var chatHub = connection.CreateHubProxy("IMHub");
      
      connection.Start().ContinueWith(t =>
      {
        if (!t.IsFaulted)
        {
          //连接成功,调用Register方法
          chatHub.Invoke("Register", clientName);
        }
      });

      //客户端接收实现,可以用js,也可以用后端接收
      var broadcastHandler = chatHub.On<string, string>("receivePrivateMessage", (name, message) =>
      {
        Console.WriteLine("[{0}]{1}: {2}", DateTime.Now.ToString("HH:mm:ss"), name, message);
      });

      Console.WriteLine("请输入接收者名:");
      var _name = Console.ReadLine();
      Console.WriteLine("请输入发送信息!");
      while (true)
      {
        var _message = Console.ReadLine();
        chatHub.Invoke("SendPrivateMessage", _name, _message).ContinueWith(t =>
        {
          if (t.IsFaulted)
          {
            Console.WriteLine("连接失败!");
          }
        });
        Console.WriteLine("请输入接收者名:");
        _name = Console.ReadLine();
        Console.WriteLine("请输入发送信息!");
      }
    }
  }
}

4. Klicken Sie mit der rechten Maustaste auf die Lösung——>Wählen Sie Eigenschaften ——>Startprojekt——>Mehrere Startprojekte——>Stellen Sie Clinet und Server wie folgt auf Start:

5. Öffnen Sie nach dem Ausführen von F5 Geben Sie in einem anderen Clinet den Benutzernamen a im ersten Client ein. Nach der Anmeldung wird die Anmelde-ID a auf dem Server angezeigt. Geben Sie den Benutzernamen b in einem anderen Clinet ein. Nach der Anmeldung wird die Anmelde-ID angezeigt Geben Sie auf dem Server die ID von b ein und geben Sie dann gemäß den Eingabeaufforderungsinformationen die Person ein, die die Informationen als b erhält. Nachdem Sie „Hallo“ eingegeben und die Eingabetaste gedrückt haben, zeigt b Client die von a eingegebenen Informationen an, wie unten gezeigt:

Da die Konsole den SignalR-Server aufruft, ist die Demo zur Implementierung von Message Push abgeschlossen. Im nächsten Kapitel werden wir das B/S-Ende implementieren Rufen Sie den SignalR-Dienst auf, um Nachrichten zu senden

Das obige ist der detaillierte Inhalt vonEinführung in den SignalR Self Host Multi-Terminal-Nachrichten-Push-Dienst (2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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