У меня есть Hub у которого переопределены методы OnConnectedAsync и OnDisconnectedAsync, метод
OnConnectedAsync вызываеться правильно, а вот OnDisconnectedAsync вызываеться не после фактического отключения пользователя, а после того как я закрываю приложение, но если я в ручном режиме закрываю соединение на клиенте вызовом метода connection.stop() то все работает нормально
Возможно кто-то сталкивался с подобной проблемой и знает её решение, хотелось бы узнать решение этой проблемы :)
Hub
private readonly ILogger<NotifyHub> logger;
private readonly ApplicationContext applicationContext;
public NotifyHub(ILogger<NotifyHub> logger , ApplicationContext applicationContext)
{
this.logger = logger;
this.applicationContext = applicationContext;
}
public override async Task<Task> OnConnectedAsync()
{
return base.OnConnectedAsync();
}
public override async Task<Task> OnDisconnectedAsync(Exception ex)
{
return base.OnDisconnectedAsync(ex);
}
}
Startup
public partial class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public string ConnectionString { get; private set; }
public void ConfigureServices(IServiceCollection services)
{
ConnectionString = Configuration.GetConnectionString("DefaultConnection");
InitDbContext(services);
InitTransient(services);
services.AddAutoMapper(typeof(Startup));
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors("CorsPolicy");
app.UseSwagger();
app.UseSwaggerUI(op =>
{
op.SwaggerEndpoint("/swagger/v1/swagger.json", "HourBoosting WEB API");
op.RoutePrefix = "docs";
});
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapHub<NotifyHub>("/api/hub/notify");
});
}
}