forked from powerfun/udpservice
对战房间
This commit is contained in:
1 parent
bc0499b9f4
commit
b51bac2abe
4 files changed
+32
-10
No files matched your search
@@ -387,15 +387,19 @@ namespace OnlineUserPool.ViewModels
|
||||
private void HandleCreateGameRoom(ReceiveModel msg)
|
||||
{
|
||||
var createMsg = msg as CreateGameRoomCommand;
|
||||
RemoveOtherRoomInfo(createMsg.UserId);
|
||||
|
||||
RemoveOtherRoomInfo(createMsg.UserId, createMsg.Id);
|
||||
|
||||
var roomId = RoomMaxId + 1;
|
||||
var list = new List<RoomDetailModel>();
|
||||
list.Add(new RoomDetailModel()
|
||||
{
|
||||
RoomId = roomId,
|
||||
UserId = createMsg.UserId,
|
||||
JoinAt = DateTime.Now.ToUniversalTime(),
|
||||
IsOwner = true,
|
||||
});
|
||||
var roomId = RoomMaxId + 1;
|
||||
|
||||
var room = new RoomModel
|
||||
{
|
||||
RoomId = roomId,
|
||||
@@ -427,9 +431,9 @@ namespace OnlineUserPool.ViewModels
|
||||
RoomMaxId = room.RoomId;
|
||||
}
|
||||
//先移除当前用户在其他房间的信息(考虑服务器重启的时候没有响应客户端退出命令)
|
||||
private void RemoveOtherRoomInfo(int userId)
|
||||
private void RemoveOtherRoomInfo(int userId, int roomId)
|
||||
{
|
||||
var preRoom = RoomList.ToList().Where(c => c.Status == 0 && c.List.Where(c => c.UserId == userId).Any()).FirstOrDefault();
|
||||
var preRoom = RoomList.ToList().Where(c => c.Status == 0 && c.List.Where(c => c.UserId == userId).Any() && c.RoomId != roomId).FirstOrDefault();
|
||||
if (preRoom != null)
|
||||
{
|
||||
var needRemove = preRoom.List.Where(c => c.UserId == userId).FirstOrDefault();
|
||||
@@ -446,7 +450,7 @@ namespace OnlineUserPool.ViewModels
|
||||
private void HandleJoinGameRoom(ReceiveModel msg)
|
||||
{
|
||||
var msg1 = msg as JoinGameRoomCommand;
|
||||
RemoveOtherRoomInfo(msg1.UserId);
|
||||
RemoveOtherRoomInfo(msg1.UserId,msg1.RoomId);
|
||||
var room = RoomList.ToList().Where(c => c.RoomId == msg1.RoomId).FirstOrDefault();
|
||||
var client = Clients.FirstOrDefault(n => n.MemberId.Equals(msg1.UserId));
|
||||
//更新房间信息
|
||||
|
||||
Reference in new issue
Block a user