diff --git a/AX.WebDrillServer/Hubs/FireDeductionHub.cs b/AX.WebDrillServer/Hubs/FireDeductionHub.cs index 79a04cc..797c227 100644 --- a/AX.WebDrillServer/Hubs/FireDeductionHub.cs +++ b/AX.WebDrillServer/Hubs/FireDeductionHub.cs @@ -43,14 +43,19 @@ namespace AX.WebDrillServer.Hubs { return roomManager.GetUserByConnectionId(connectionId); } - + /// + /// 创建房间 + /// + /// + /// + /// public async Task CallServer_CreateRoom(RoomCreateDto createInfo) { try { RoomCreateResultData resultData = new RoomCreateResultData(); var user = roomManager.GetUser(createInfo.UserId); - if (user == null) + if (user == null)//如果查询不到创建房间的用户 { resultData.RoomCreateResult = RoomCreateResult.用户不存在; return resultData; @@ -58,8 +63,8 @@ namespace AX.WebDrillServer.Hubs FireDeductionRoom room = new FireDeductionRoom(); room.Owner = createInfo.UserId; room.RoomId = Guid.NewGuid().ToString(); - room.RoomName = createInfo.RoomName; - room.Password = createInfo.RoomPassword; + room.RoomName = createInfo.Name == null ? "未命名房间" : createInfo.Name; + room.Password = createInfo.Password; roomManager.AddRoom(room); user.RoomId = room.RoomId; @@ -77,28 +82,36 @@ namespace AX.WebDrillServer.Hubs throw new Exception(ex.Message); } } - public async Task EnterRoom(string roomId, FireDeductionUser user, string? password = null) + public bool CallServer_EnterRoom(string roomId, FireDeductionUser user, string? password = null) { bool result = false; - - var room = roomManager.GetRoom(roomId); - if (room != null && room.Password == password) + try { - if (!room.Users.Contains(user)) + var room = roomManager.GetRoom(roomId); + if (room != null && room.Password == password) { - result = true; + if (!room.Users.Contains(user)) + { + + result = true; + room.Users.Add(user); + user.RoomId = room.RoomId; + } + else + { + throw new NotImplementedException("房间中已经存在该用户!"); + } } else { - throw new NotImplementedException("房间中已经存在该用户!"); + throw new NotImplementedException("房间信息有误!"); } } - else + catch (Exception) { - throw new NotImplementedException("房间信息有误!"); - } - + throw; + } return result; } diff --git a/AX.WebDrillServer/Services/FireDeductionHub/RoomCreateDto.cs b/AX.WebDrillServer/Services/FireDeductionHub/RoomCreateDto.cs index 301ff45..c358547 100644 --- a/AX.WebDrillServer/Services/FireDeductionHub/RoomCreateDto.cs +++ b/AX.WebDrillServer/Services/FireDeductionHub/RoomCreateDto.cs @@ -3,7 +3,7 @@ public class RoomCreateDto { public string UserId { get; set; } = null!; - public string? RoomPassword { get; set; } - public string RoomName { get; set; } = null!; + public string? Password { get; set; } + public string Name { get; set; } = null!; } } diff --git a/AX.WebDrillServer/Services/FireDeductionHub/RoomManager.cs b/AX.WebDrillServer/Services/FireDeductionHub/RoomManager.cs index 1ebf7c0..3b25998 100644 --- a/AX.WebDrillServer/Services/FireDeductionHub/RoomManager.cs +++ b/AX.WebDrillServer/Services/FireDeductionHub/RoomManager.cs @@ -2,7 +2,6 @@ { public class RoomManager { - private List fireDeductionRooms = new List(); private List fireDeductionUsers = new List();