Browse Source

房间中通讯时间赋值为持续时间单位(毫秒)

develop
杨栋梁 3 years ago
parent
commit
a36354bb1e
  1. 42
      AX.WebDrillServer/Hubs/FireDeductionHub.cs

42
AX.WebDrillServer/Hubs/FireDeductionHub.cs

@ -152,6 +152,12 @@ namespace AX.WebDrillServer.Hubs
//通知web端刷新房间用户列表
await Clients.Group(room.RoomId).SendAsync("callWeb_changeRoomate", data);
//如果演练已经开始用户加入到演练的用户列表中
if (room.Drills.Count > 0)
{
room.Drills[room.Drills.Count - 1].Users.Add(user);
}
resultData.RoomId = room.RoomId;
resultData.EnterResult = RoomEnterResult.Success;
return resultData;
@ -296,8 +302,8 @@ namespace AX.WebDrillServer.Hubs
EndTime = DateTime.Now.Ticks, //Ticks是一个以0 .1纳秒为单位的时间戳
};
room.State = RoomState.Over;
room.Drills[room.Drills.Count - 1].EndTime = resultData.EndData.EndTime;
room.Drills[room.Drills.Count - 1].DrillState = DrillState.Over;
room.Drills[room!.Drills.Count - 1].EndTime = resultData.EndData.EndTime;
room.Drills[room!.Drills.Count - 1].DrillState = DrillState.Over;
await Clients.Group(room.RoomId).SendAsync("CallWeb_EndDrill", resultData);
return resultData;
@ -329,17 +335,24 @@ namespace AX.WebDrillServer.Hubs
}
else
{
//计算DrillTime
DrillShowData resultData = new()
if (room.Drills.Count > 0)
{
DrillTime = room.Drills[room.Drills.Count - 1].GetDrillLastTime(),
Name = room.Drills[room.Drills.Count - 1].DrillName,
Owner = roomManager.GetUser(room.Owner)!,
EndTime = room.Drills[room.Drills.Count - 1].EndTime,
StartTime = room.Drills[room.Drills.Count - 1].StartTime,
Players = room.Drills[room.Drills.Count - 1].Users,
};
return resultData;
//计算DrillTime
DrillShowData resultData = new()
{
DrillTime = room.Drills[room!.Drills.Count - 1].GetDrillLastTime(),
Name = room.Drills[room!.Drills.Count - 1].DrillName,
Owner = roomManager.GetUser(room!.Owner)!,
EndTime = room.Drills[room!.Drills.Count - 1].EndTime,
StartTime = room.Drills[room!.Drills.Count - 1].StartTime,
Players = room.Drills[room!.Drills.Count - 1].Users,
};
return resultData;
}
else
{
throw new Exception("演练还没开始!");
}
}
}
catch (Exception e)
@ -357,7 +370,8 @@ namespace AX.WebDrillServer.Hubs
if (room != null)
{
data.UserId = userId!;
data.Time = DateTime.Now.Ticks;
//持续时间
data.Time = room.Drills[room!.Drills.Count - 1].GetDrillLastTime();
//转发给房间中的其他人
await Clients.GroupExcept(room.RoomId, Context.ConnectionId).SendAsync("CallWeb_sendOthersOrder", data);
//存储一份数据
@ -368,7 +382,7 @@ namespace AX.WebDrillServer.Hubs
RoomId = room.RoomId,
InfoData = data.Data.ToJson(),
};
room.Drills[room.Drills.Count - 1].Infos.Add(info);
room.Drills[room!.Drills.Count - 1].Infos.Add(info);
roomManager.SaveRoomSendInfo(info);
}
}

Loading…
Cancel
Save