added disconnect information to the client state listener

so that clients that care can know why they were booted, etc.


git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7043 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
PSp..om 14 years ago
parent 1871d02b7d
commit a14df8a68f
  1. 15
      engine/src/networking/com/jme3/network/ClientStateListener.java
  2. 10
      engine/src/networking/com/jme3/network/base/DefaultClient.java

@ -50,7 +50,18 @@ public interface ClientStateListener
/**
* Called when the client has disconnected from the remote
* server.
* server. If info is null then the client shut down the
* connection normally, otherwise the info object contains
* additional information about the disconnect.
*/
public void clientDisconnected( Client c );
public void clientDisconnected( Client c, DisconnectInfo info );
/**
* Provided with the clientDisconnected() notification to
* include additional information about the disconnect.
*/
public class DisconnectInfo
{
public String reason;
}
}

@ -40,6 +40,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.jme3.network.*;
import com.jme3.network.ClientStateListener.DisconnectInfo;
import com.jme3.network.message.ClientRegistrationMessage; //hopefully temporary
import com.jme3.network.message.DisconnectMessage; //hopefully temporary
import com.jme3.network.kernel.Connector;
@ -208,7 +209,7 @@ public class DefaultClient implements Client
// Wait for the threads?
fireDisconnected();
fireDisconnected(null);
isRunning = false;
}
@ -250,10 +251,10 @@ public class DefaultClient implements Client
}
}
protected void fireDisconnected()
protected void fireDisconnected( DisconnectInfo info )
{
for( ClientStateListener l : stateListeners ) {
l.clientDisconnected( this );
l.clientDisconnected( this, info );
}
}
@ -271,6 +272,9 @@ public class DefaultClient implements Client
// Can't do too much else yet
String reason = ((DisconnectMessage)m).getReason();
log.log( Level.SEVERE, "Connection terminated, reason:{0}.", reason );
DisconnectInfo info = new DisconnectInfo();
info.reason = reason;
fireDisconnected(info);
close();
}

Loading…
Cancel
Save