Maison >développement back-end >C++ >Comment envoyer des messages entre les applications console à l'aide de SignalR ?

Comment envoyer des messages entre les applications console à l'aide de SignalR ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 16:13:41818parcourir

How to Send Messages Between Console Applications Using SignalR?

Envoyer des messages avec SignalR dans une application console

SignalR permet une communication en temps réel entre un serveur et des clients connectés. Pour utiliser SignalR, vous devrez installer SignalR.Hosting.Self sur l'application serveur et SignalR.Client sur l'application client via NuGet.

Application console serveur

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) {
                var key = Console.ReadKey(true);
                if (key.Key == ConsoleKey.X) {
                    break;
                }
            }
        }

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

            public void DoSomething(string param) {
                Clients.addMessage(param);
            }
        }
    }
}

Console client Application

using System;
using SignalR.Client.Hubs;

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

            connection.Start().Wait();
            Console.WriteLine("Connected");

            myHub.Invoke<string>("Send", "HELLO World ").Wait();
            Console.WriteLine("Message sent.");

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

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

            Console.Read();
            connection.Stop();
        }
    }
}

Informations supplémentaires

  • Attribuez un nom de hub personnalisé à l'aide de [HubName("CustomName")] mais notez que l'utilisation d'un nom standard Le nom du hub peut entraîner des problèmes de compatibilité.
  • Exécutez les deux projets en tant qu'administrateur.
  • Si vous recevez un Erreur « Hub inconnu », assurez-vous que le nom du hub et celui du proxy client correspondent.

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