【问题标题】:How to Self-Host SignalR server in .NET5/6 desktop application?如何在 .NET5/6 桌面应用程序中自托管 SignalR 服务器?
【发布时间】:2021-12-28 07:30:30
【问题描述】:

我正在使用 .NET 6 和 WinUI3 开发桌面应用程序。此应用程序持续跟踪 PLC 中的数据变化,并将实时数据传输到我的服务器和仪表板。

我的服务器是基于云的。使用服务器作为消息中枢来传输数据会造成不必要的延迟和性能占用。这就是为什么我想在我的桌面应用程序中托管一个 signalR 服务器,以便它可以作为一个轻量级 Web 服务器。

我找到了Tutorial: SignalR Self-Host,但它不适用于 .NET Framework 4.x。我仍然可以使用 Asp.Net Core SignalR 在我的桌面应用程序中托管 SignalR 服务器吗?


我的母语不是英语。我的描述中可能存在一些语法错误,对此我深表歉意。

【问题讨论】:

    标签: c# .net signalr


    【解决方案1】:

    您很可能可以利用所有网络核心应用程序中提供的后台服务。

    signalr/background-services

    设置它,可以这么简单:

    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSignalR();
            services.AddHostedService<Worker>();
        }
    
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
    
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapHub<ClockHub>("/hubs/clock");
            });
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 2021-10-03
      • 2013-05-11
      • 2013-07-14
      • 2013-12-22
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多