public static ChatRoomConnectionPool BuildChatRoomConnectionPoolEmpty(Guid chatRoomId) { var emptyChatConnectionPool = new ChatRoomConnectionPool() { ChatRoomId = chatRoomId, TotalActiveConnections = 0, // no users ActiveConnectionsLimit = 6, ServerInstances = new List <ServerInstance>() // no servers hosting this room }; return(emptyChatConnectionPool); }
// // Summary: // Gets all the users connected to a given chat room across all application instances hosting such room. // If the room is not found, it raises an exception. // // Raises: // ObjectDoesNotExistException - if the chat room was not found. public async Task <ChatRoomConnectionPool> GetChatRoomConnectionPool(string chatRoomName) { _logger.LogInformation("Getting connection store for chat room name: {chatRoomName:l}", chatRoomName); var chatRoom = await GetChatRoom(chatRoomName); _logger.LogInformation("Chat room exists, attempting to retrieve a previous connection pool from Redis..."); var chatRoomActiveConnectionPool = await _redis.GetKey <ChatRoomConnectionPool>(chatRoom.Id); if (chatRoomActiveConnectionPool != null) { return(chatRoomActiveConnectionPool); } _logger.LogInformation("Chat room had no previous connection pool on Redis. Creating a new one..."); var newChatRoomConnectionPool = new ChatRoomConnectionPool { ChatRoomId = chatRoom.Id, ActiveConnectionsLimit = chatRoom.ActiveConnectionsLimit, TotalActiveConnections = 0, ServerInstances = new List <ServerInstance>() }; return(newChatRoomConnectionPool); }
public static ChatRoomConnectionPool BuildChatRoomConnectionPoolTwoInstances(Guid chatRoomId, int activeConnectionsLimit, Guid instanceId1, Guid instanceId2) { var connectedUserId1 = Guid.NewGuid(); var connectedUserId2 = Guid.NewGuid(); var connectedUserId3 = Guid.NewGuid(); var connectedUserId4 = Guid.NewGuid(); var connectedUser1 = new ConnectedUser { UserId = connectedUserId1, ConnectionId = "connection 1" }; var connectedUser2 = new ConnectedUser { UserId = connectedUserId2, ConnectionId = "connection 2" }; var connectedUser3 = new ConnectedUser { UserId = connectedUserId3, ConnectionId = "connection 3" }; var connectedUser4 = new ConnectedUser { UserId = connectedUserId4, ConnectionId = "connection 4" }; var serverInstance1 = new ServerInstance() { ServerInstanceId = instanceId1, ConnectedUsers = new List <ConnectedUser>() { connectedUser1, connectedUser2 } }; var serverInstance2 = new ServerInstance() { ServerInstanceId = instanceId2, ConnectedUsers = new List <ConnectedUser>() { connectedUser3, connectedUser4 } }; var chatRoomConnectionPool = new ChatRoomConnectionPool() { ChatRoomId = chatRoomId, ActiveConnectionsLimit = activeConnectionsLimit, TotalActiveConnections = 4, ServerInstances = new List <ServerInstance>() { serverInstance1, serverInstance2 } }; return(chatRoomConnectionPool); }