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端刷新房间用户列表 //通知web端刷新房间用户列表
await Clients.Group(room.RoomId).SendAsync("callWeb_changeRoomate", data); 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.RoomId = room.RoomId;
resultData.EnterResult = RoomEnterResult.Success; resultData.EnterResult = RoomEnterResult.Success;
return resultData; return resultData;
@ -296,8 +302,8 @@ namespace AX.WebDrillServer.Hubs
EndTime = DateTime.Now.Ticks, //Ticks是一个以0 .1纳秒为单位的时间戳 EndTime = DateTime.Now.Ticks, //Ticks是一个以0 .1纳秒为单位的时间戳
}; };
room.State = RoomState.Over; room.State = RoomState.Over;
room.Drills[room.Drills.Count - 1].EndTime = resultData.EndData.EndTime; 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].DrillState = DrillState.Over;
await Clients.Group(room.RoomId).SendAsync("CallWeb_EndDrill", resultData); await Clients.Group(room.RoomId).SendAsync("CallWeb_EndDrill", resultData);
return resultData; return resultData;
@ -329,17 +335,24 @@ namespace AX.WebDrillServer.Hubs
} }
else else
{ {
//计算DrillTime if (room.Drills.Count > 0)
DrillShowData resultData = new()
{ {
DrillTime = room.Drills[room.Drills.Count - 1].GetDrillLastTime(), //计算DrillTime
Name = room.Drills[room.Drills.Count - 1].DrillName, DrillShowData resultData = new()
Owner = roomManager.GetUser(room.Owner)!, {
EndTime = room.Drills[room.Drills.Count - 1].EndTime, DrillTime = room.Drills[room!.Drills.Count - 1].GetDrillLastTime(),
StartTime = room.Drills[room.Drills.Count - 1].StartTime, Name = room.Drills[room!.Drills.Count - 1].DrillName,
Players = room.Drills[room.Drills.Count - 1].Users, Owner = roomManager.GetUser(room!.Owner)!,
}; EndTime = room.Drills[room!.Drills.Count - 1].EndTime,
return resultData; 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) catch (Exception e)
@ -357,7 +370,8 @@ namespace AX.WebDrillServer.Hubs
if (room != null) if (room != null)
{ {
data.UserId = userId!; 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); await Clients.GroupExcept(room.RoomId, Context.ConnectionId).SendAsync("CallWeb_sendOthersOrder", data);
//存储一份数据 //存储一份数据
@ -368,7 +382,7 @@ namespace AX.WebDrillServer.Hubs
RoomId = room.RoomId, RoomId = room.RoomId,
InfoData = data.Data.ToJson(), 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); roomManager.SaveRoomSendInfo(info);
} }
} }

Loading…
Cancel
Save