private void Disconnect()
{
State = SessionState.Disconnected;
Server.UnregisterSession( this );
Server.RaiseSessionDisconnectedEvent( this, LeaveReason );
if ( HasRegistered ) {
Server.UnregisterPlayer( this );
RaisePlayerDisconnectedEvent( this, LeaveReason );
}
if ( reader != null ) {
reader.Close();
reader = null;
}
if ( writer != null ) {
writer.Close();
writer = null;
}
if ( client != null ) {
client.Close();
client = null;
}
ioThread = null;
}