More logs

main
Thomas Woischnig 2023-12-30 23:48:04 +01:00
parent b7f44b5215
commit c8472e0670
2 changed files with 32 additions and 9 deletions

View File

@ -16,15 +16,36 @@ ConcurrentDictionary<Guid, List<int>> clientsWatchingGameId = new ConcurrentDict
BufferRental bufferRental = new BufferRental(4096);
udpServer.QueryIpAndPort += (clientId, ip, port) =>
{
var messageData = bufferRental.Rent();
var seenExternalIpAndPort = new SeenExternalIpAndPort() { Ip = ip, Port = port };
var messageDataLength = seenExternalIpAndPort.Serialize(messageData);
_ = Task.Run(async () =>
{
Console.WriteLine($"{DateTime.Now}: [TcpServer] sending QueryExternalPortAndIp result for lobby client id {clientId} with {ip}:{port}");
byte[]? messageData = null;
try
{
await tcpServer.Send(clientId, messageData, 0, messageDataLength);
bufferRental.Return(messageData);
});
messageData = bufferRental.Rent();
var seenExternalIpAndPort = new SeenExternalIpAndPort() { Ip = ip, Port = port };
var messageDataLength = seenExternalIpAndPort.Serialize(messageData);
_ = Task.Run(async () =>
{
try
{
await tcpServer.Send(clientId, messageData, 0, messageDataLength);
}
catch(Exception ex)
{
Console.WriteLine($"{DateTime.Now}: [TcpServer] error in QueryExternalPortAndIp result for lobby client id {clientId} with {ip}:{port}: {ex.ToString()}");
}
bufferRental.Return(messageData);
messageData = null;
});
}
catch (Exception ex)
{
Console.WriteLine($"{DateTime.Now}: [TcpServer] error in QueryExternalPortAndIp result for lobby client id {clientId} with {ip}:{port}: {ex.ToString()}");
if (messageData != null)
bufferRental.Return(messageData);
}
};
tcpServer.DataReceived += (clientId, dataLength, data) =>

View File

@ -36,11 +36,13 @@ namespace LobbyServer
var receiveResult = await serverSocket.ReceiveAsync(cancellationTokenSource.Token);
if(receiveResult.Buffer.Length > 0)
{
Console.WriteLine($"{DateTime.Now}: [UdpCandidateServer] received packet");
Memory<byte> receivedData = new Memory<byte>(receiveResult.Buffer);
switch (LobbyMessageIdentifier.ReadLobbyMessageIdentifier(receivedData.Span))
{
case QueryExternalPortAndIp.TypeId:
case QueryExternalPortAndIp.TypeId:
var queryExternalPortAndIp = QueryExternalPortAndIp.Deserialize(receivedData.Span);
Console.WriteLine($"{DateTime.Now}: [UdpCandidateServer] received QueryExternalPortAndIp for lobby client id {queryExternalPortAndIp.LobbyClientId} from {receiveResult.RemoteEndPoint.Address.ToString()}:{receiveResult.RemoteEndPoint.Port}");
QueryIpAndPort?.Invoke(queryExternalPortAndIp.LobbyClientId, receiveResult.RemoteEndPoint.Address.ToString(), receiveResult.RemoteEndPoint.Port);
break;
}