ASP.NET Core SignalR.NET 客户端
程序员文章站
2023-12-28 17:32:46
...
一、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获取集线器实例,从集线器外部发送消息
推荐阅读
-
ASP.NET Core SignalR.NET 客户端
-
[ASP.NET Core 3.0学习笔记] - SignalR
-
ASP.NET Core 聊天室实现(SignalR)
-
Asp.Net Core 2.1 中 利用SignalR 服务端主动推送数据
-
Asp.Net Core使用SignalR进行服务间调用
-
asp.net core identity 配置cookie
-
ASP.net core 2.0.0 中 asp.net identity 2.0.0 的基本使用(二)—启用用户管理
-
asp.net core identity学习1
-
ASP.NET Core Identity 实战(4)授权过程
-
ASP.NET Core Identity 实战(3)认证过程