using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.DependencyInjection; using System.Reflection; using WcfControlMonitorLib; using WcfControlMonitorWebLib.Hubs; namespace WcfControlMonitorWebLib { /// /// 启动项 /// public class Startup { /// /// 服务配置 /// public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddDefaultPolicy(policy => { policy .SetIsOriginAllowed(_ => true) .AllowAnyHeader() .AllowCredentials() .AllowAnyMethod(); }); }); services.AddMvc(options => options.Filters.Add()); services.AddSignalR(); } /// /// 应用配置 /// public void Configure(IApplicationBuilder app) { app.UseCors(); app.UseMvc(); app.UseSignalR(builder => builder.MapHub("/signalr/monitor")); //订阅某个事件实现数据推送 //SControlMonitor.MonitorHub += (sender, e) => app.ApplicationServices.GetService>().Clients.All.SendAsync("broadcast", sender); Model.CGetInfo.DeviceChange += (Device) => { var hub = app.ApplicationServices.GetService>(); hub.Clients.All.SendAsync("broadcast", Device); }; } } }