From 8ac53f15f6c33244d71de55c9fdde04c3fbe3f7b Mon Sep 17 00:00:00 2001 From: Sanae Date: Thu, 10 Feb 2022 02:42:35 -0600 Subject: [PATCH] More logs --- Server/Client.cs | 10 ++++++++-- Server/Server.cs | 11 ++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Server/Client.cs b/Server/Client.cs index b38d663..1bb4094 100644 --- a/Server/Client.cs +++ b/Server/Client.cs @@ -1,5 +1,6 @@ using System.Net.Sockets; using Shared; +using Shared.Packet; using Shared.Packet.Packets; namespace Server; @@ -15,13 +16,18 @@ public class Client : IDisposable { public Guid Id; public Socket? Socket; + public Server Server { get; init; } public void Dispose() { Socket?.Disconnect(false); } - public async Task Send(ReadOnlyMemory data) { - if (!Connected) return; + public async Task Send(ReadOnlyMemory data, Client? other) { + if (!Connected) { + Server.Logger.Info($"Didn't send {(PacketType) data.Span[16]} to {Id} because they weren't connected yet"); + return; + } + Server.Logger.Info($"Sending {(PacketType) data.Span[16]} to {Id} from {other?.Id.ToString() ?? "server"}"); await Socket!.SendAsync(data[..Constants.MaxPacketSize], SocketFlags.None); } diff --git a/Server/Server.cs b/Server/Server.cs index 86d591c..2c4cc06 100644 --- a/Server/Server.cs +++ b/Server/Server.cs @@ -60,10 +60,7 @@ public class Server { /// Memory owner to dispose once done /// Optional sender to not broadcast data to public async Task Broadcast(IMemoryOwner data, Client? sender = null) { - await Task.WhenAll(Clients.Where(c => c.Connected && c != sender).Select(client => { - Logger.Info($"Sending {(PacketType) data.Memory.Span[16]} to {client.Id} from {sender.Id}"); - return client.Send(data.Memory); - })); + await Task.WhenAll(Clients.Where(c => c.Connected && c != sender).Select(client => client.Send(data.Memory, sender))); data.Dispose(); } @@ -73,7 +70,7 @@ public class Server { /// Memory to send to the clients /// Optional sender to not broadcast data to public async void Broadcast(Memory data, Client? sender = null) { - await Task.WhenAll(Clients.Where(c => c.Connected && c != sender).Select(client => client.Send(data))); + await Task.WhenAll(Clients.Where(c => c.Connected && c != sender).Select(client => client.Send(data, sender))); } public Client? FindExistingClient(Guid id) { @@ -82,7 +79,7 @@ public class Server { private async void HandleSocket(Socket socket) { - Client client = new Client { Socket = socket }; + Client client = new Client { Socket = socket, Server = this }; IMemoryOwner memory = null!; bool first = true; try { @@ -152,7 +149,7 @@ public class Server { ConnectionType = ConnectionTypes.FirstConnection // doesn't matter what it is :) }; MemoryMarshal.Write(connectBuffer.Memory.Span, ref connectPacket); - await client.Send(connectBuffer.Memory); + await client.Send(connectBuffer.Memory, null); connectBuffer.Dispose(); });