Bläddra i källkod

:sparkles: Ajout notification du client par le serveur

Arthur Brandao 6 år sedan
förälder
incheckning
1a96a32bf1
2 ändrade filer med 33 tillägg och 3 borttagningar
  1. 21 2
      Serveur/bomberstudent_server.c
  2. 12 1
      Serveur/main.c

+ 21 - 2
Serveur/bomberstudent_server.c

@@ -177,7 +177,6 @@ boolean receive_client(Client* cli) {
     JsonParser* jp = NULL;
     arraylist* al = &get;
     //Attente reception
-    printf("Ici\n");
     if (cli->main->server_receive(cli->main, buffer, BUFFER_SIZE) == ERR) {
         addserror("Impossible de recevoire les données du client");
         return false;
@@ -263,4 +262,24 @@ boolean send_client(int cliId, JsonEncoder* je){
     return true;
 }
 
-boolean notify_client(Client* cli, char* method, char* ressource, JsonEncoder* param);
+boolean notify_client(Client* cli, char* method, char* ressource, JsonEncoder* param){
+    int length;
+    char* answer, * msg;
+    //Creation message
+    answer = json_encode(param);
+    length = strlen(method) + 1 + strlen(ressource) + 1 + strlen(answer) + 2;
+    msg = malloc(sizeof(char) + length);
+    memset(msg, 0, length);
+    sprintf(msg, "%s %s\n%s\n", method, ressource, answer);
+    //Envoi la reponse
+    if(!cli->notify->server_send(cli->notify, msg)){
+        adderror("Impossible de notifier le client");
+        free(answer);
+        free(msg);
+        return false;
+    }
+    //Nettoyage
+    free(answer);
+    free(msg);
+    return true;
+}

+ 12 - 1
Serveur/main.c

@@ -152,6 +152,15 @@ int handler(int cliId, JsonParser* jp){
     return 1;
 }
 
+void notify(){
+    Client* cli = get_client(0);
+    JsonEncoder je;
+    ini_encoder(&je);
+    add_string(&je, "etat", "ok");
+    add_integer(&je, "value", 42);
+    notify_client(cli, "POST", "test", &je);
+}
+
 int main(){
     //return parse();
     //return encode();
@@ -171,7 +180,9 @@ int main(){
         error.print("Impossible de démarrer le serveur");
         error.exit_err();
     }
-    sleep(20);
+    sleep(10);
+    notify();
+    sleep(15);
     error.exit();
     //*/
 }