Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Membina Aplikasi Konsol SignalR Mudah dengan Pelayan dan Pelanggan?

Bagaimana untuk Membina Aplikasi Konsol SignalR Mudah dengan Pelayan dan Pelanggan?

DDD
Lepaskan: 2025-01-05 03:54:42
asal
779 orang telah melayarinya

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

Contoh Apl Konsol SignalR

Dalam artikel ini, kami akan meneroka contoh aplikasi konsol menggunakan SignalR untuk berkomunikasi dengan .NET hub.

IsyaratR Persediaan

Sebelum meneruskan, pastikan pakej SignalR berikut dipasang dalam kedua-dua pelayan dan aplikasi klien melalui NuGet:

  • Pelayan: SignalR.Host.Self (versi 0.5. 2)
  • Pelanggan: Microsoft.AspNet.SignalR.Client

Pelaksanaan Pelayan

Buat pelayan aplikasi konsol dengan kod berikut:

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);
            }
        }
    }
}
Salin selepas log masuk

Pelaksanaan Pelanggan

Dalam apl konsol yang berasingan pelanggan:

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();
        }
    }
}
Salin selepas log masuk

Isu dan Penyelesaian

Menetapkan Nama Hab

Jika anda menghadapi masalah dengan hab tertentu nama ("ujian") dalam kod sebelah pelayan anda (cth., [HubName("test")]), pastikan ia tidak bercanggah dengan atribut HubName dalam kod sisi klien. Nama hab yang digunakan dalam kedua-dua pelayan dan pelanggan mesti sepadan untuk komunikasi yang betul.

Atas ialah kandungan terperinci Bagaimana untuk Membina Aplikasi Konsol SignalR Mudah dengan Pelayan dan Pelanggan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan