public void disconnect() {
		
		//windowController.getSendTextArea().setDisable(true);
		//windowController.getSubmitButton().setDisable(true);
		
		shutdownReconnectWorker();
    	
		if(connectionCheckTimer != null) {
			connectionCheckTimer.cancel();			
		}
		
		if(!echoSocket.isClosed()) {
			preDisconnect();
			
			/*if(sockObjIn != null) {
    			try {
					sockObjIn.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}*/
			if(sockObjOut != null) {
				writeObject(Commands.CMD_CLT_DISCONNECT + " ");
    			/*try {
					sockObjOut.close();
				} catch (IOException e) {
					e.printStackTrace();
				}*/
			}
			try {
				echoSocket.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			
			postDisconnect();
		}
        	
		//windowController.updateUsersList(new HashMap<Integer, String>());  
		sendNewInfo("Disconnected from the server");
    	
	}