天天看點

ASP.NET Core SignalR.NET 用戶端

一、ASP.NET Core SignalR.NET 用戶端

Asp.Net Core3.1的SignalR服務端應用,目前僅可以對接PC桌面版本的.Net Core 引用。

二、使用方式

1.建立 .Net Core wpf引用

2.安裝用戶端包

Install-Package Microsoft.AspNetCore.SignalR.Client
           

3.連結伺服器

public partial class MainWindow : Window
    {
        HubConnection connection;
        public MainWindow()
        {
            InitializeComponent();

            connection = new HubConnectionBuilder()
                .WithUrl("http://localhost:53353/ChatHub")
                .Build();

            connection.Closed += async (error) =>
            {
                await Task.Delay(new Random().Next(0,5) * 1000);
                await connection.StartAsync();
            };
        }

        private async void connectButton_Click(object sender, RoutedEventArgs e)
        {
            connection.On<string, string>("ReceiveMessage", (user, message) =>
            {
                this.Dispatcher.Invoke(() =>
                {
                   var newMessage = $"{user}: {message}";
                   messagesList.Items.Add(newMessage);
                });
            });

            try
            {
                await connection.StartAsync();
                messagesList.Items.Add("Connection started");
                connectButton.IsEnabled = false;
                sendButton.IsEnabled = true;
            }
            catch (Exception ex)
            {
                messagesList.Items.Add(ex.Message);
            }
        }

        private async void sendButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                await connection.InvokeAsync("SendMessage", 
                    userTextBox.Text, messageTextBox.Text);
            }
            catch (Exception ex)
            {                
                messagesList.Items.Add(ex.Message);                
            }
        }
    }
           

4.斷開處理

connection.Closed += async (error) =>
{
    await Task.Delay(new Random().Next(0,5) * 1000);
    await connection.StartAsync();
};
           

更多:

 Asp.Net Core 3.1 SignalR 啟動配置變化

 Asp.Net Core 2.0使用SignalR技術-入門

 Asp.Net Core SignalR擷取集線器執行個體,從集線器外部發送消息

繼續閱讀