Maison > développement back-end > C++ > Comment créer une application console SignalR simple avec un serveur et un client ?

Comment créer une application console SignalR simple avec un serveur et un client ?

DDD
Libérer: 2025-01-05 03:54:42
original
778 Les gens l'ont consulté

How to Build a Simple SignalR Console Application with a Server and Client?

Exemple d'application console SignalR

Dans cet article, nous explorerons un exemple d'application console utilisant SignalR pour communiquer avec un .NET hub.

Configuration SignalR

Avant de continuer, assurez-vous que les packages SignalR suivants sont installés dans les applications serveur et client via NuGet :

  • Serveur : SignalR.Host.Self (version 0.5.2)
  • Client : Microsoft.AspNet .SignalR.Client

Serveur Implémentation

Créez un serveur d'application de console avec le code suivant :

using System;
using SignalR.Hubs;

namespace SignalR.Hosting.Self.Samples
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "http://127.0.0.1:8088/";
            var server = new Server(url);

            server.MapHubs();

            server.Start();

            Console.WriteLine("Server running on {0}", url);

            while (true)
            {
                ConsoleKeyInfo ki = Console.ReadKey(true);
                if (ki.Key == ConsoleKey.X)
                {
                    break;
                }
            }
        }

        [HubName("CustomHub")]
        public class MyHub : Hub
        {
            public string Send(string message)
            {
                return message;
            }

            public void DoSomething(string param)
            {
                Clients.addMessage(param);
            }
        }
    }
}
Copier après la connexion

Implémentation du client

Dans un client d'application de console distinct :

using System;
using SignalR.Client.Hubs;

namespace SignalRConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var connection = new HubConnection("http://127.0.0.1:8088/");

            var myHub = connection.CreateHubProxy("CustomHub");

            connection.Start().ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    Console.WriteLine("Error opening connection: {0}", task.Exception.GetBaseException());
                }
                else
                {
                    Console.WriteLine("Connected");
                }

            }).Wait();

            myHub.Invoke<string>("Send", "HELLO World ").ContinueWith(task =>
            {
                if (task.IsFaulted)
                {
                    Console.WriteLine("Error calling Send: {0}", task.Exception.GetBaseException());
                }
                else
                {
                    Console.WriteLine(task.Result);
                }
            });

            myHub.On<string>("addMessage", param => { Console.WriteLine(param); });

            myHub.Invoke<string>("DoSomething", "I'm doing something!!!").Wait();

            Console.Read();
            connection.Stop();
        }
    }
}
Copier après la connexion

Problèmes et Solutions

Attribution d'un nom de hub

Si vous rencontrez des problèmes avec un nom de hub spécifique (« test ») dans votre code côté serveur (par exemple, [ HubName("test")]), assurez-vous qu'il n'entre pas en conflit avec l'attribut HubName dans le code côté client. Le nom du hub utilisé à la fois sur le serveur et sur le client doit correspondre pour une communication correcte.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal