From 63ed9fc06dbbf9ad352f3ff0f895474b45074297 Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 29 May 2025 21:55:17 -0400 Subject: [PATCH] network logging + client network timing work --- .../electrosphere/net/client/ClientNetworking.java | 10 ++++++++++ .../net/client/protocol/AuthProtocol.java | 5 +++-- .../net/server/ServerConnectionHandler.java | 4 ++++ .../net/server/protocol/AuthProtocol.java | 14 ++++++-------- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/electrosphere/net/client/ClientNetworking.java b/src/main/java/electrosphere/net/client/ClientNetworking.java index baa1b0a8..c0c9fd5e 100644 --- a/src/main/java/electrosphere/net/client/ClientNetworking.java +++ b/src/main/java/electrosphere/net/client/ClientNetworking.java @@ -278,6 +278,7 @@ public class ClientNetworking implements Runnable { //attempt poll incoming messages long readStart = System.currentTimeMillis(); try { + LoggerInterface.loggerNetworking.DEBUG_LOOP("[CLIENT] Try to read messages in"); parser.readMessagesIn(); } catch (IOException e) { LoggerInterface.loggerNetworking.ERROR(e); @@ -291,6 +292,7 @@ public class ClientNetworking implements Runnable { // //outgoing messages try { + LoggerInterface.loggerNetworking.DEBUG_LOOP("[CLIENT] Try to write messages out"); parser.pushMessagesOut(); } catch(IOException e){ LoggerInterface.loggerNetworking.ERROR(e); @@ -301,6 +303,7 @@ public class ClientNetworking implements Runnable { // //parses messages asynchronously + LoggerInterface.loggerNetworking.DEBUG_LOOP("[CLIENT] Parse asynchronous messages"); boolean foundMessages = this.parseMessagesAsynchronously(); @@ -333,6 +336,13 @@ public class ClientNetworking implements Runnable { //TODO: kick us back to the main menu break; } + try { + //sleep + TimeUnit.MILLISECONDS.sleep(1); + } catch (InterruptedException ex) { + //silently ignore + // CodeUtils.todo(ex, "Handle sleep interrupt on server connection"); + } } if(this.socket != null){ diff --git a/src/main/java/electrosphere/net/client/protocol/AuthProtocol.java b/src/main/java/electrosphere/net/client/protocol/AuthProtocol.java index 0685ab4b..8458d5f2 100644 --- a/src/main/java/electrosphere/net/client/protocol/AuthProtocol.java +++ b/src/main/java/electrosphere/net/client/protocol/AuthProtocol.java @@ -18,6 +18,7 @@ public class AuthProtocol implements ClientProtocolTemplate { case AUTHREQUEST: { //Try login Globals.clientState.clientConnection.queueOutgoingMessage(AuthMessage.constructAuthDetailsMessage(Globals.clientState.clientUsername,Globals.clientState.clientPassword)); + LoggerInterface.loggerNetworking.INFO("[CLIENT] Received auth request"); } break; case AUTHSUCCESS: { //clean password hash from memory @@ -27,11 +28,11 @@ public class AuthProtocol implements ClientProtocolTemplate { //request characters available to this player Globals.clientState.clientConnection.queueOutgoingMessage(CharacterMessage.constructRequestCharacterListMessage()); //log that we succeeded - LoggerInterface.loggerAuth.INFO("Successfully logged in"); + LoggerInterface.loggerNetworking.INFO("[CLIENT] Successfully logged in"); } break; case AUTHFAILURE: { //TODO: handle better - LoggerInterface.loggerAuth.ERROR("Auth failure",new Exception("Auth failure")); + LoggerInterface.loggerNetworking.ERROR("Auth failure",new Exception("Auth failure")); } break; //ignore stack case AUTHDETAILS: { diff --git a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java index 2a1656ba..9a2afa6e 100644 --- a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java +++ b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java @@ -238,6 +238,7 @@ public class ServerConnectionHandler implements Runnable { // //parse messages both incoming and outgoing try { + LoggerInterface.loggerNetworking.DEBUG_LOOP("[SERVER] Try to read messages in"); receivedMessageThisLoop = this.parseMessages(); } catch (SocketException e) { //if we get a SocketException broken pipe (basically the client dc'd without telling us) @@ -320,6 +321,7 @@ public class ServerConnectionHandler implements Runnable { //Read in messages // //attempt poll incoming messages + LoggerInterface.loggerNetworking.DEBUG_LOOP("[SERVER] Try to read messages in"); networkParser.readMessagesIn(); rVal = networkParser.hasIncomingMessaage(); @@ -342,6 +344,7 @@ public class ServerConnectionHandler implements Runnable { // //ponder incoming messages while(networkParser.hasIncomingMessaage()){ + LoggerInterface.loggerNetworking.DEBUG_LOOP("[SERVER] Handle async messages"); NetworkMessage message = networkParser.popIncomingMessage(); this.messageProtocol.handleAsyncMessage(message); } @@ -363,6 +366,7 @@ public class ServerConnectionHandler implements Runnable { //Send out messages // //push outgoing message + LoggerInterface.loggerNetworking.DEBUG_LOOP("[SERVER] Try to write messages out"); networkParser.pushMessagesOut(); try { //sleep diff --git a/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java b/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java index 6d546a5a..8e6c8077 100644 --- a/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java +++ b/src/main/java/electrosphere/net/server/protocol/AuthProtocol.java @@ -3,6 +3,7 @@ package electrosphere.net.server.protocol; import electrosphere.auth.AuthenticationManager; import electrosphere.engine.EngineState; import electrosphere.engine.Globals; +import electrosphere.logger.LoggerInterface; import electrosphere.net.parser.net.message.AuthMessage; import electrosphere.net.parser.net.message.PlayerMessage; import electrosphere.net.server.ServerConnectionHandler; @@ -17,7 +18,7 @@ public class AuthProtocol implements ServerProtocolTemplate { @Override public AuthMessage handleAsyncMessage(ServerConnectionHandler connectionHandler, AuthMessage message) { switch(message.getMessageSubtype()){ - case AUTHDETAILS: + case AUTHDETAILS: { //auth check int loginId = Globals.authenticationManager.authenticate(message.getuser(), message.getpass()); if(loginId != AuthenticationManager.INVALID_LOGIN){ @@ -33,16 +34,13 @@ public class AuthProtocol implements ServerProtocolTemplate { } else { connectionHandler.addMessagetoOutgoingQueue(AuthMessage.constructAuthFailureMessage()); } - break; + LoggerInterface.loggerNetworking.INFO("[SERVER] Received auth details"); + } break; case AUTHREQUEST: - //silently drop - break; case AUTHSUCCESS: + case AUTHFAILURE: { //silently drop - break; - case AUTHFAILURE: - //silently drop - break; + } break; } return null; }