ホームページ >バックエンド開発 >C++ >SignalR を使用してコンソール アプリケーション間でメッセージを送信するにはどうすればよいですか?

SignalR を使用してコンソール アプリケーション間でメッセージを送信するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 16:13:41818ブラウズ

How to Send Messages Between Console Applications Using SignalR?

コンソール アプリで SignalR を使用してメッセージを送信する

SignalR により、サーバーと接続されたクライアント間のリアルタイム通信が可能になります。 SignalR を利用するには、NuGet を通じてサーバー アプリケーションに SignalR.Hosting.Self をインストールし、クライアント アプリケーションに SignalR.Client をインストールする必要があります。

サーバー コンソール アプリ

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);
            }
        }
    }
}

クライアントコンソールアプリ

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();
        }
    }
}

追加情報

  • [HubName("CustomName")] を使用してカスタム ハブ名を割り当てますが、標準のハブ名を使用することに注意してください。ハブ名によって互換性の問題が発生する可能性があります。
  • 両方のプロジェクトを次のように実行します。
  • 「不明なハブ」エラーが表示された場合は、ハブ名とクライアント プロキシ名の両方が一致していることを確認してください。

以上がSignalR を使用してコンソール アプリケーション間でメッセージを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。