fix: connection key is invalid

This commit is contained in:
2024-07-21 09:46:01 +03:00
parent 3bec19c2b2
commit bdf7d4f94a
2 changed files with 10 additions and 5 deletions
@@ -75,6 +75,8 @@ namespace Ragon.Server.Handler
} }
else else
{ {
_logger.Warning($"Invalid key for connection {context.Connection.Id}");
Reject(context); Reject(context);
} }
} }
@@ -100,7 +102,7 @@ namespace Ragon.Server.Handler
var sendData = _writer.ToArray(); var sendData = _writer.ToArray();
context.Connection.Reliable.Send(sendData); context.Connection.Reliable.Send(sendData);
_logger.Trace($"Connection {context.Connection.Id} as {playerId}|{context.LobbyPlayer.Name} authorized"); _logger.Trace($"Approved {context.Connection.Id} as {playerId}|{context.LobbyPlayer.Name}");
} }
public void Reject(RagonContext context) public void Reject(RagonContext context)
@@ -113,7 +115,7 @@ namespace Ragon.Server.Handler
context.Connection.Reliable.Send(sendData); context.Connection.Reliable.Send(sendData);
context.Connection.Close(); context.Connection.Close();
_logger.Trace($"Connection {context.Connection.Id}"); _logger.Trace($"Rejected Connectin:{context.Connection.Id}");
} }
} }
} }
+6 -3
View File
@@ -66,7 +66,6 @@ public class RagonServer : IRagonServer, INetworkListener
_timer = new Stopwatch(); _timer = new Stopwatch();
var contextObserver = new RagonContextObserver(_contextsByPlayerId); var contextObserver = new RagonContextObserver(_contextsByPlayerId);
_scheduler.Run(new RagonActionTimer(SendRoomList, 2.0f)); _scheduler.Run(new RagonActionTimer(SendRoomList, 2.0f));
_scheduler.Run(new RagonActionTimer(SendPlayerUserData, 0.1f)); _scheduler.Run(new RagonActionTimer(SendPlayerUserData, 0.1f));
_scheduler.Run(new RagonActionTimer(SendRoomUserData, 0.1f)); _scheduler.Run(new RagonActionTimer(SendRoomUserData, 0.1f));
@@ -156,7 +155,9 @@ public class RagonServer : IRagonServer, INetworkListener
_lobby.RemoveIfEmpty(room); _lobby.RemoveIfEmpty(room);
} }
_contextsByPlayerId.Remove(context.LobbyPlayer.Id);
if (context.ConnectionStatus == ConnectionStatus.Authorized)
_contextsByPlayerId.Remove(context.LobbyPlayer.Id);
_logger.Trace($"Disconnected: {connection.Id}"); _logger.Trace($"Disconnected: {connection.Id}");
} }
@@ -176,7 +177,9 @@ public class RagonServer : IRagonServer, INetworkListener
room.DetachPlayer(context.RoomPlayer); room.DetachPlayer(context.RoomPlayer);
_lobby.RemoveIfEmpty(room); _lobby.RemoveIfEmpty(room);
} }
_contextsByPlayerId.Remove(context.LobbyPlayer.Id);
if (context.ConnectionStatus == ConnectionStatus.Authorized)
_contextsByPlayerId.Remove(context.LobbyPlayer.Id);
_logger.Trace($"Timeout: {connection.Id}|{context.LobbyPlayer.Name}|{context.LobbyPlayer.Id}"); _logger.Trace($"Timeout: {connection.Id}|{context.LobbyPlayer.Name}|{context.LobbyPlayer.Id}");
} }