was added firebase nitifying

This commit is contained in:
Artemy
2026-03-01 16:48:06 +07:00
parent 76d7280c71
commit eab0d746b8
60 changed files with 2335 additions and 1149 deletions
@@ -0,0 +1,32 @@
using System.Collections.Concurrent;
using Govor.Application.Interfaces;
namespace Govor.API.Hubs.Infrastructure;
public class ConnectionStore : IConnectionStore
{
private readonly ConcurrentDictionary<Guid, HashSet<string>> _connections = new();
public void AddConnection(Guid userId, string connectionId)
{
var conns = _connections.GetOrAdd(userId, _ => new HashSet<string>());
lock (conns) conns.Add(connectionId);
}
public void RemoveConnection(Guid userId, string connectionId)
{
if (_connections.TryGetValue(userId, out var conns))
{
lock (conns)
{
conns.Remove(connectionId);
if (!conns.Any()) _connections.TryRemove(userId, out _);
}
}
}
public IEnumerable<string> GetConnections(Guid userId)
{
return _connections.TryGetValue(userId, out var conns) ? conns.ToList() : Enumerable.Empty<string>();
}
}