public static void RemoveEmptyBroadcastContext(BroadcastContext broadcastContext) { lock (UsersCollection) { UsersCollection.Remove(broadcastContext.UserId); } }
public AppConnection(AspNetWebSocketContext ctx, Guid userId, BroadcastContext broadcastContext) { UserId = userId; socket = ctx.WebSocket; _broadcastContext = broadcastContext; _cancellation.Token.Register(SendCloseAndDispose); GetDataTask = RecieveLoop(); }
//TODO: addSonnection method public static Task AddConnection(AspNetWebSocketContext ctx, Guid userId) { Task returnTask; lock (UsersCollection) { BroadcastContext broadcastContext; if (UsersCollection.TryGetValue(userId, out broadcastContext)) { returnTask = broadcastContext.AddAppContext(ctx, userId); } else { broadcastContext = new BroadcastContext(userId); returnTask = broadcastContext.AddAppContext(ctx, userId); UsersCollection.Add(userId, broadcastContext); } } return(returnTask); }