diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index 35d5b95..13d30a0 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -9,23 +9,16 @@ using OnlineUserPool.Unility; using Serilog; using System.Linq; using System.Net; -using System.Net.Sockets; -using System.Threading.Tasks; using System.Windows.Threading; using System.Diagnostics; using OnlineUserPool.Services; using Newtonsoft.Json; using System.Collections.Concurrent; -using System.IO.Compression; -using System.IO; using System.Windows; using OnlineUserPool.Api; -using OnlineUserPool.Api.Model; namespace OnlineUserPool.ViewModels { - - public class MainWindowViewModel : BindableBase { public ObservableCollection Clients { get; private set; } = new ObservableCollection(); @@ -96,28 +89,22 @@ namespace OnlineUserPool.ViewModels Title = $"{ IPAddress.Any }:{ ConfigHelp.UdpPort }"; dispatcher = Dispatcher.CurrentDispatcher; - - //Customers.Add("suntao"); + WriteLine(DateTime.Now.ToShortDateString()); LogHelper.Init(); mapRecordRankingHander = new MapRecordRankingHander();// //mapRecordRankingHander = new MultiUserHandle(); Log.Information($"初始化连接,当前地址:{ IPAddress.Any }:{ConfigHelp.UdpPort}"); - new TcpService().RunServer(ReceivedData, CientDisconnected); - //var tet = new System.Collections.Concurrent.ConcurrentBag(); - var _udpService = new UdpService(); _udpService.RunServer(ReceivedData); - Log.Information("服务启动成功"); timer = new System.Timers.Timer(500); timer.Elapsed += Timer_Elapsed; timer.AutoReset = true; timer.Start(); Log.Information("等待连接"); - //Console.ReadKey(); } private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) @@ -132,17 +119,18 @@ namespace OnlineUserPool.ViewModels { if (!Clients.Any(c => c.Equals(remoteIpEndPoint))) { - Clients.Add(new HostModel + if (msg is SetClientCommand client) { - IPEndPoint = remoteIpEndPoint, - LastActiveTime = DateTime.Now, - //RouteId = msg.RouteId, - //MemberId = msg.MemberId, - //V = msg.V, - //Encoding = msg.Encoding, - //Client = msg.Client, - Service = service - }); + Clients.Add(new HostModel + { + IPEndPoint = remoteIpEndPoint, + LastActiveTime = DateTime.Now, + Service = service, + MemberId = client.MemberId, + Encoding = client.Encoding, + V = client.V + }); + } } switch (msg.CommandType) @@ -201,15 +189,11 @@ namespace OnlineUserPool.ViewModels } if (msg.CommandType == 0) { - - //client.ShowVirtual = msg.ShowVirtual; } else if (msg.CommandType == 1) { - } - }); } @@ -229,16 +213,16 @@ namespace OnlineUserPool.ViewModels //对战房间内的人保存处理 if (msg1.RoomId > 0 && msg1.Saved) { - var current = RoomList.ToList().Where(c => c.RoomId == msg1.RoomId).FirstOrDefault(); + var current = RoomList.ToList().FirstOrDefault(c => c.RoomId == msg1.RoomId); if (current != null) { //更新房间内的人的保存状态 - var currentPlayer = current.List.Where(c => c.UserId == msg1.MemberId).FirstOrDefault(); + var currentPlayer = current.List.FirstOrDefault(c => c.UserId == msg1.MemberId); if (currentPlayer != null) { currentPlayer.Saved = true; } - var notAllSaved = current.List.Where(c => !c.Saved).Any(); + var notAllSaved = current.List.Any(c => !c.Saved); if (!notAllSaved && current.Status != 2) { current.Status = 2; @@ -246,7 +230,7 @@ namespace OnlineUserPool.ViewModels } if (!current.Saved) { - notAllSaved = current.List.Where(c => !c.Saved).Any(); + notAllSaved = current.List.Any(c => !c.Saved); if (!notAllSaved && current.Status != 2) { current.Status = 2; @@ -426,7 +410,7 @@ namespace OnlineUserPool.ViewModels IsLock = !string.IsNullOrEmpty(createMsg.Password), List = list, }; - var mine = Clients.Where(c => c.MemberId == createMsg.UserId).FirstOrDefault(); + var mine = Clients.FirstOrDefault(c => c.MemberId == createMsg.UserId); if (mine != null) { mine.RoomId = room.RoomId; @@ -457,13 +441,13 @@ namespace OnlineUserPool.ViewModels { var msg1 = msg as JoinGameRoomCommand; RemoveOtherRoomInfo(msg1.UserId,msg1.RoomId); - var room = RoomList.ToList().Where(c => c.RoomId == msg1.RoomId).FirstOrDefault(); + var room = RoomList.ToList().FirstOrDefault(c => c.RoomId == msg1.RoomId); var client = Clients.FirstOrDefault(n => n.MemberId.Equals(msg1.UserId)); //更新房间信息 if (room != null) { var list = room.List; - var member = list.Where(c => c.UserId == msg1.UserId).FirstOrDefault(); + var member = list.FirstOrDefault(c => c.UserId == msg1.UserId); if (member != null) { member.JoinAt = msg1.JoinAt; @@ -514,12 +498,12 @@ namespace OnlineUserPool.ViewModels private void HandleGameRoomStart(ReceiveModel msg) { var msg1 = msg as GameRoomStartCommand; - var client = Clients.Where(c => c.MemberId == msg1.UserId).FirstOrDefault(); + var client = Clients.FirstOrDefault(c => c.MemberId == msg1.UserId); if (client != null) { client.RoomId = msg1.RoomId; } - var room = RoomList.ToList().Where(c => c.RoomId == msg1.RoomId).FirstOrDefault(); + var room = RoomList.ToList().FirstOrDefault(c => c.RoomId == msg1.RoomId); if (room != null) { room.Status = 1;