Correction erreur connexion (ChatApp.getInstance().isConnecte() dans envoiUnicast() )
This commit is contained in:
parent
9fe8dd70d5
commit
a6b25652b7
4 changed files with 124 additions and 21 deletions
|
@ -13,14 +13,15 @@ chatapp/Protocol/RunnerEcouteTCP.java
|
|||
chatapp/View/FenetreSession.java
|
||||
chatapp.View.FenetreSession
|
||||
chatapp.View.FenetreSession$1
|
||||
chatapp/Protocol/HttpEchange.java
|
||||
chatapp.Protocol.HttpEchange
|
||||
chatapp/Controller/ChatApp.java
|
||||
chatapp.Controller.ChatApp
|
||||
chatapp/View/ChangementPseudo.java
|
||||
chatapp.View.ChangementPseudo
|
||||
chatapp/View/View_Menu.java
|
||||
chatapp.View.View_Menu
|
||||
chatapp/View/DemarrerSession.java
|
||||
chatapp.View.DemarrerSession
|
||||
chatapp/Protocol/RunnerEcouteUDP.java
|
||||
chatapp.Protocol.RunnerEcouteUDP
|
||||
chatapp/Protocol/UDPEchange.java
|
||||
chatapp.Protocol.RunnerUDP
|
||||
chatapp.Protocol.UDPEchange
|
||||
chatapp/Main.java
|
||||
chatapp.Main
|
||||
chatapp/View/Clavardage.java
|
||||
|
@ -32,10 +33,9 @@ chatapp/View/ConnexionScreen.java
|
|||
chatapp.View.ConnexionScreen
|
||||
chatapp/View/View_Utilisateurs.java
|
||||
chatapp.View.View_Utilisateurs
|
||||
chatapp/Protocol/UDPEchange.java
|
||||
chatapp.Protocol.RunnerUDP
|
||||
chatapp.Protocol.UDPEchange
|
||||
chatapp/Controller/ChatApp.java
|
||||
chatapp.Controller.ChatApp
|
||||
chatapp/Protocol/RunnerEcouteUDP.java
|
||||
chatapp.Protocol.RunnerEcouteUDP
|
||||
chatapp/View/View_Menu.java
|
||||
chatapp.View.View_Menu
|
||||
chatapp/Protocol/HttpEchange.java
|
||||
chatapp.Protocol.HttpEchange
|
||||
chatapp/View/DemarrerSession.java
|
||||
chatapp.View.DemarrerSession
|
||||
|
|
|
@ -110,7 +110,24 @@ public class ChatApp implements PropertyChangeListener {
|
|||
* @return False si modiferPseudo a echoue, True sinon
|
||||
*/
|
||||
private boolean modifierPseudoExterne(String nouveau) {
|
||||
return false;
|
||||
boolean reussi = false;
|
||||
try {
|
||||
if(externeEchange.sendPost("Pseudo " + nouveau)){
|
||||
reussi = true ;
|
||||
this.getMe().setPseudo(nouveau);
|
||||
db.majPseudo(this.me.getId(),nouveau);
|
||||
System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
|
||||
this.getActifUsers().afficherListeUtilisateurs();
|
||||
}
|
||||
else{
|
||||
System.out.println("Echec changement de pseudo");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return reussi;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -183,7 +200,15 @@ public class ChatApp implements PropertyChangeListener {
|
|||
*/
|
||||
private boolean connexionExterne(String pseudo) throws IOException, InterruptedException{
|
||||
this.me.setPseudo(pseudo);
|
||||
return externeEchange.sendPost("Connexion");
|
||||
if(externeEchange.sendPost("Connexion")){
|
||||
this.connecte=true;
|
||||
this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
|
||||
this.db.majUtilisateursActifs(true,this.me.getId());
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -214,7 +239,7 @@ public class ChatApp implements PropertyChangeListener {
|
|||
else
|
||||
{
|
||||
System.out.println("Connexion echoue");
|
||||
UDPEchange.setConnecte(false);
|
||||
UDPEchange.setConnecte(true);
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
|
@ -265,8 +290,31 @@ public class ChatApp implements PropertyChangeListener {
|
|||
* Il va prevenir le serveur de presence de son depart.</p>
|
||||
*
|
||||
*/
|
||||
private void deconnexionExterne() {
|
||||
private void deconnexionExterne() throws IOException{
|
||||
// A IMPLEMENTER
|
||||
System.out.println("Deco lancee");
|
||||
boolean deco = false;
|
||||
try {
|
||||
deco = externeEchange.sendPost("Deconnexion");
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(deco){
|
||||
System.out.print("Deconnexion reussie");
|
||||
}
|
||||
else{
|
||||
System.out.println("Deconnexion echouee");
|
||||
}
|
||||
db.majUtilisateursActifs(false,this.me.getId());
|
||||
this.connecte=false;
|
||||
try {
|
||||
main.stop();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Platform.exit();
|
||||
System.exit(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ public class HttpEchange {
|
|||
*/
|
||||
public boolean sendPost(String type) throws IOException, InterruptedException{
|
||||
boolean reussi = false ;
|
||||
/*---------------------------------CONNEXION---------------------------------*/
|
||||
if (type.equals("Connexion")){
|
||||
System.out.println("Tentative de connexion distante");
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
|
@ -63,6 +64,60 @@ public class HttpEchange {
|
|||
}
|
||||
}
|
||||
}
|
||||
/*---------------------------------DECONNEXION---------------------------------*/
|
||||
else if(type.equals("Deconnexion")){
|
||||
System.out.println("Tentative de deconnexion distante");
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
String requestBody = "Deconnexion\n" + this.chatapp.getMe().toString() ;
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(url))
|
||||
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
||||
.build();
|
||||
|
||||
HttpResponse<String> response = client.send(request,
|
||||
HttpResponse.BodyHandlers.ofString());
|
||||
|
||||
if(response.body().equals("")){
|
||||
System.out.println("Reponse recue vide");
|
||||
}
|
||||
else {
|
||||
System.out.println(response.body());
|
||||
if(response.body().contains("Deconnexion")){
|
||||
reussi = true;
|
||||
System.out.println("Deconnexion acceptee");
|
||||
}
|
||||
}
|
||||
}
|
||||
/*---------------------------------PSEUDO---------------------------------*/
|
||||
/*---------------------------Le nouveau pseudo----------------------------*/
|
||||
else if(type.contains("Pseudo")){
|
||||
String nouveau = type.split(" ")[1];
|
||||
System.out.println("Tentative de modification de pseudo d'un hote distant");
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
String requestBody = "Pseudo\n" + this.chatapp.getMe().toString() + "\n" + nouveau;
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(url))
|
||||
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
||||
.build();
|
||||
|
||||
HttpResponse<String> response = client.send(request,
|
||||
HttpResponse.BodyHandlers.ofString());
|
||||
|
||||
if(response.body().equals("")){
|
||||
System.out.println("Reponse recue vide");
|
||||
}
|
||||
else {
|
||||
System.out.println(response.body());
|
||||
switch (response.body().split("\n")[0]) {
|
||||
case "Reponse Pseudo":
|
||||
reussi = Boolean.parseBoolean(response.body().split("\n")[1]);
|
||||
System.out.println("Connexion acceptee");
|
||||
break;
|
||||
default:
|
||||
System.out.println("Erreur dans le format de la réponse reçue");
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
System.out.println("Erreur de type");
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ import chatapp.Model.*;
|
|||
*/
|
||||
public class UDPEchange {
|
||||
|
||||
private static Boolean Connecte = false;
|
||||
private static Boolean Connecte = true;
|
||||
// True si l'utilisateur peut se connecter avec ce nom d'utilisateur , False sinon
|
||||
|
||||
private static Boolean EcouteEnCours = false;
|
||||
|
@ -160,7 +160,7 @@ public class UDPEchange {
|
|||
* @param Message correspond au message à transmettre a l'utilisateur
|
||||
*/
|
||||
public static void envoiUnicast( InetAddress Adress , String Message ) throws IOException {
|
||||
if (UDPEchange.getConnecte()){
|
||||
if (ChatApp.getInstance().isConnecte()){
|
||||
DatagramSocket socket = new DatagramSocket();
|
||||
byte[]buffer = Message.getBytes();
|
||||
DatagramPacket packet = new DatagramPacket( buffer, buffer.length, Adress, 1234 );
|
||||
|
@ -249,7 +249,7 @@ class RunnerUDP implements Runnable {
|
|||
reponse += "false\n";
|
||||
}
|
||||
else {
|
||||
if(! u.getPseudo().equals("root")){
|
||||
if(!u.getPseudo().equals("root")){
|
||||
System.out.println("Ajout d'un nouvel utilisateur dans la liste des Utilisateurs");
|
||||
( app.getActifUsers() ).addList(u);
|
||||
reponse += "true\n";
|
||||
|
@ -279,7 +279,7 @@ class RunnerUDP implements Runnable {
|
|||
Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[2]);
|
||||
app.getActifUsers().addList(u);
|
||||
app.getActifUsers().afficherListeUtilisateurs();
|
||||
UDPEchange.setConnecte(true);
|
||||
|
||||
}
|
||||
else {
|
||||
System.out.println("Pseudo deja pris");
|
||||
|
|
Loading…
Reference in a new issue