Asp.Net Core API 和 WinForm 的 SignalR 例子
2021-03-08 22:30
标签:href client partial rri 包括 社交网络 其他应用 tde services ASP.NET Core SignalR 是一个开源库,它简化了向应用程序添加实时 web 功能的功能。 实时 Web 功能使服务器端代码能够即时将内容推送到客户端。 创建SignalR服务端Asp.Net Core API 这参考了Blog系统的写法 ChatHub 创建中间件SignalRSendMildd和MiddlewareHelpers MiddlewareHelpers Startup类Configure方法里调用中间件设置SignalR服务路由 创建SignalR客户端发送消息返回发送的消息内容,这里客户端用winform Demo下载 Asp.Net Core API 和 WinForm 的 SignalR 例子 标签:href client partial rri 包括 社交网络 其他应用 tde services 原文地址:https://www.cnblogs.com/SuperDust/p/12769647.html什么是 SignalR?
官方列举的SignalR适用场景:
引用SignalR序列化的包 Install-Package Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson -Version 3.1.3
Startup类ConfigureServices方法里注册SignalR服务 services.AddSignalR().AddNewtonsoftJsonProtocol();
创建SignalR的Hub定义消息,分别是IChatClient和ChatHub
IChatClient public interface IChatClient
{
///
public class ChatHub : Hub
SignalRSendMildd ///
public static class MiddlewareHelpers
{
///
// signalr
app.UseSignalRSendMildd();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapHub
这是界面
引用SignalR的包 Install-Package Microsoft.AspNetCore.SignalR.Client
public partial class WinFormsApp : Form
{
private HubConnection connection;
public WinFormsApp()
{
InitializeComponent();
SignalRConnection();
}
public async void SignalRConnection()
{
connection = new HubConnectionBuilder()
.WithUrl("http://localhost:5000/signalr/chatHub")
.Build();
await connection.StartAsync();
connection.Closed += async (error) =>
{
await Task.Delay(new Random().Next(0, 5) * 1000);
await connection.StartAsync();
};
}
private async void button1_Click(object sender, EventArgs e)
{
try
{
await connection.InvokeAsync("WinFormsApp", "SignalRClient", this.textBox1.Text);
connection.On
文章标题:Asp.Net Core API 和 WinForm 的 SignalR 例子
文章链接:http://soscw.com/index.php/essay/62017.html