Maison  >  Article  >  développement back-end  >  Introduction au service push de messages multiterminaux SignalR Self Host (2)

Introduction au service push de messages multiterminaux SignalR Self Host (2)

零下一度
零下一度original
2017-07-02 11:59:581848parcourir

Cet article présente principalement en détail la deuxième partie des services de transmission de messages multiterminaux tels que SignalR Self Host+MVC. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

1. Présentation

Dans le dernier article, nous avons simplement implémenté le serveur auto-hébergé SignalR. Aujourd'hui, nous allons implémenter le programme console pour appeler le serveur SignalR pour transmettre des informations. Parce qu'avant, nous prévoyons de transmettre des messages d'approbation. , notre direction de démonstration est donc d'envoyer des messages à des personnes désignées. Quant aux messages de chat et aux diffusions mondiales, nous ne les démontrerons pas ici.

2. Créez un client console

1. Créez une nouvelle console nommée Clinet sous la solution SignalRProject

2. Entrez la commande suivante dans la console de gestion des packages


Install-Package Microsoft.AspNet.SignalR.Client

3. Modifier le code Program.cs du projet Clinet<.>


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. Cliquez avec le bouton droit sur la solution——>Sélectionnez

Propriétés ——>Projet de démarrage——>Plusieurs projets de démarrage——>Définissez Clinet et le serveur au démarrage, comme suit :

5. Après l'exécution de F5, ouvrez. un autre Clinet, entrez le nom d'utilisateur a dans le premier client, et après vous être connecté, l'ID de connexion a sera affiché sur le serveur. Entrez le nom d'utilisateur b dans un autre Clinet, et après vous être connecté, l'ID de connexion sera affiché. sur le serveur. L'ID de b, puis en fonction des informations demandées, entrez la personne recevant les informations comme b dans a Clinet. Après avoir entré bonjour et appuyé sur Entrée, b Client affiche les informations saisies par a, comme indiqué ci-dessous :

Puisque la console appelle le serveur SignalR, la démo pour implémenter le push de message est terminée. J'écrirai ceci pour aujourd'hui. Dans le prochain chapitre, nous implémenterons la fin B/S. appeler le service SignalR pour pousser des messages

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn