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);
};
}
}
}