43 lines
1.8 KiB
C#
43 lines
1.8 KiB
C#
using AyCode.Blazor.Components.Services;
|
|
using AyCode.Core.Loggers;
|
|
using AyCode.Services.Server.SignalRs;
|
|
using AyCode.Services.SignalRs;
|
|
using TIAM.Database.DataLayers.Users;
|
|
using TIAM.Services;
|
|
using TIAM.Services.Server.Logins;
|
|
|
|
namespace TIAMWebApp.Server.Services;
|
|
|
|
public class AcWebSignalRHubWithSessionBase<TSignalRTags, TLogger>(IConfiguration configuration, UserDal userDal, SessionService sessionService, TLogger logger)
|
|
: AcWebSignalRHubBase<TSignalRTags, TLogger>(configuration, logger) where TSignalRTags : AcSignalRTags where TLogger : AcLoggerBase//Hub<ISignalRHubItemServer>, IAcSignalRHubServer
|
|
{
|
|
protected readonly UserDal UserDal = userDal;
|
|
protected SessionService SessionService = sessionService;
|
|
|
|
public override async Task OnConnectedAsync()
|
|
{
|
|
await base.OnConnectedAsync();
|
|
|
|
SessionService.Sessions.TryAdd(Context.ConnectionId, new SessionItem(Context.ConnectionId, new LoginService(UserDal, Configuration)));
|
|
Logger.Info($"_sessionService.Sessions count: {SessionService.Sessions.Count}");
|
|
|
|
////insert or update them into database.
|
|
//var CId = _context.UserIdToCId.Find(userId);
|
|
//CId.ConnectionId = connectionid;
|
|
//_context.Update(CId);
|
|
//await _context.SaveChangesAsync();
|
|
//await base.OnConnectedAsync();
|
|
////await Groups.AddToGroupAsync(Context.ConnectionId, "SignalR Users");
|
|
}
|
|
|
|
public override async Task OnDisconnectedAsync(Exception? exception)
|
|
{
|
|
await base.OnDisconnectedAsync(exception);
|
|
|
|
if (SessionService.Sessions.TryRemove(Context.ConnectionId, out var sessionItem)) sessionItem.LoginService.Logout();
|
|
Logger.Info($"_sessionService.Sessions count: {SessionService.Sessions.Count}");
|
|
|
|
//await Groups.RemoveFromGroupAsync(Context.ConnectionId, "SignalR Users");
|
|
}
|
|
|
|
} |