首頁 >後端開發 >C++ >如何使用 SignalR 在控制台應用程式之間發送訊息?

如何使用 SignalR 在控制台應用程式之間發送訊息?

Susan Sarandon
Susan Sarandon原創
2025-01-04 16:13:41828瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn