From 00e892bf099267266189b36929c90449ac6402c0 Mon Sep 17 00:00:00 2001 From: zonetecde Date: Fri, 10 Mar 2023 18:27:48 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20param=C3=A8tre=20args?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ClassLibrary/ClassLibrary.cs | 5 +++-- zck_client/ClassLibrary.cs | 17 ++++++++++++----- zck_client/ZoneckClient.cs | 23 ++++++++++------------- zck_server/ZoneckServer.cs | 9 +++++---- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/ClassLibrary/ClassLibrary.cs b/ClassLibrary/ClassLibrary.cs index 8a9be9b..2067197 100644 --- a/ClassLibrary/ClassLibrary.cs +++ b/ClassLibrary/ClassLibrary.cs @@ -35,18 +35,19 @@ public User(string userID) public class Message { - public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "") + public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "", string args = "") { Id = id; Content = content; MessageType = messageType; ToId = toId; + Args = args; } public string Id { get; set; } public string Content { get; set; } public string ToId { get; set; } - + public string Args { get; } public MESSAGE_TYPE MessageType { get; set; } } diff --git a/zck_client/ClassLibrary.cs b/zck_client/ClassLibrary.cs index 068f0ad..3ea6d5f 100644 --- a/zck_client/ClassLibrary.cs +++ b/zck_client/ClassLibrary.cs @@ -1,4 +1,10 @@ -namespace zck_client +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace zck_client { public class ClassLibrary { @@ -29,18 +35,19 @@ public User(string userID) public class Message { - public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "") + public Message(string id, string content, MESSAGE_TYPE messageType, string toId = "", string args = "") { Id = id; Content = content; MessageType = messageType; ToId = toId; + Args = args; } public string Id { get; set; } public string Content { get; set; } public string ToId { get; set; } - + public string Args { get; } public MESSAGE_TYPE MessageType { get; set; } } @@ -52,9 +59,9 @@ public enum MESSAGE_TYPE DISCONNECTION, DONNER_ID, MESSAGE_BRUTE, - FILE_UPDATED, + FILE_UPDATED, // au passé, mais c'est car le client lui recevra ceci lorsqu'un fichié a été modifié par un user GET_FILE, - FILE_DELETED, + FILE_DELETED, // au passé, mais c'est car le client lui recevra ceci lorsqu'un fichié a été modifié par un user CREATE_FILE, LIST_FILE } diff --git a/zck_client/ZoneckClient.cs b/zck_client/ZoneckClient.cs index ebe447c..677e199 100644 --- a/zck_client/ZoneckClient.cs +++ b/zck_client/ZoneckClient.cs @@ -38,9 +38,9 @@ public ZoneckClient(string appName, string ip, int port, Action Receive /// Envois un message à tous ou un utilisateur du serveur /// /// Le message à envoyer - public void Send(string str, string toId = "") + public void Send(string str, string toId = "", string args = "") { - string msg = JsonConvert.SerializeObject(new Message(MyId, str, MESSAGE_TYPE.MESSAGE, toId)) + "\r\n"; + string msg = JsonConvert.SerializeObject(new Message(MyId, str, MESSAGE_TYPE.MESSAGE, toId, args: args)) + "\r\n"; var buffter = Encoding.UTF8.GetBytes(msg); var temp = SocketClient.Send(buffter); @@ -51,9 +51,9 @@ public void Send(string str, string toId = "") /// /// Nom du fichier demandé (ex : folder/file.txt) /// Le contenue du fichier sera envoyé dans votre fonction MessageReceived. Ce sera un message de type "GET_FILE". Son contenue se trouvera donc dans le msg.Content - public void GetFile(string path) + public void GetFile(string path, string args = "") { - string msg = JsonConvert.SerializeObject(new Message(MyId, path, MESSAGE_TYPE.GET_FILE)) + "\r\n"; + string msg = JsonConvert.SerializeObject(new Message(MyId, path, MESSAGE_TYPE.GET_FILE, args: args)) + "\r\n"; var buffter = Encoding.UTF8.GetBytes(msg); var temp = SocketClient.Send(buffter); @@ -77,9 +77,9 @@ public void CreateFile(string path) /// Chemin du fichier à supprimer /// Prévenir les autres utilisateurs qu'un fichier a été supprimé /// Si warnOtherPeople est activé, Les personnes connectées au serveur recevrons une alerte envoyé dans leur fonction MessageReceived. Ce sera un message de type "FILE_DELETED". Le chemin d'accès au fichier se trouvera dans msg.Content - public void DeleteFile(string path, bool warnOtherPeople) + public void DeleteFile(string path, bool warnOtherPeople, string args = "") { - string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople)), MESSAGE_TYPE.FILE_DELETED)) + "\r\n"; + string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople)), MESSAGE_TYPE.FILE_DELETED, args:args)) + "\r\n"; var buffter = Encoding.UTF8.GetBytes(msg); var temp = SocketClient.Send(buffter); @@ -92,9 +92,9 @@ public void DeleteFile(string path, bool warnOtherPeople) /// Le nouveau contenue du fichier /// Prévenir les autres utilisateurs qu'un fichier a été modifié /// Si warnOtherPeople est activé, Les personnes connectées au serveur recevrons une alerte envoyé dans leur fonction MessageReceived. Ce sera un message de type "FILE_UPDATED". Il faudra désérialiser le msg.Content en type "FileMessage". Le chemin d'accès au fichier se trouvera dans fM.Path, et le nouveau contenu dans fM.Content. - public void UpdateFile(string path, string updatedFileContent, bool warnOtherPeople) + public void UpdateFile(string path, string updatedFileContent, bool warnOtherPeople, string args = "") { - string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople, updatedFileContent)), MESSAGE_TYPE.FILE_UPDATED)) + "\r\n"; + string msg = JsonConvert.SerializeObject(new Message(MyId, JsonConvert.SerializeObject(new FileMessage(path, warnOtherPeople, updatedFileContent)), MESSAGE_TYPE.FILE_UPDATED, args: args)) + "\r\n"; var buffter = Encoding.UTF8.GetBytes(msg); var temp = SocketClient.Send(buffter); @@ -103,9 +103,9 @@ public void UpdateFile(string path, string updatedFileContent, bool warnOtherPeo /// /// Retourne dans un message de type LIST_FILE (dans votre fonction MessageReceived) tous les fichiers du serveur séparé par une virgule. /// - public void ListFile() + public void ListFile(string args = "") { - string msg = JsonConvert.SerializeObject(new Message(MyId, "I wanna receive files", MESSAGE_TYPE.LIST_FILE)) + "\r\n"; + string msg = JsonConvert.SerializeObject(new Message(MyId, args, MESSAGE_TYPE.LIST_FILE, args: args)) + "\r\n"; var buffter = Encoding.UTF8.GetBytes(msg); var temp = SocketClient.Send(buffter); @@ -129,7 +129,6 @@ private void _Receive() if (!String.IsNullOrEmpty(message)) { - Message received_message = JsonConvert.DeserializeObject(message); // pour id @@ -137,8 +136,6 @@ private void _Receive() MyId = received_message.Content; Receive(received_message); - - } } catch diff --git a/zck_server/ZoneckServer.cs b/zck_server/ZoneckServer.cs index b6cc120..75d58db 100644 --- a/zck_server/ZoneckServer.cs +++ b/zck_server/ZoneckServer.cs @@ -212,7 +212,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest if (u.SessionID != clientSession.SessionID) { // Envois l'alerte au client 'u' que le fichier a été supprimé - u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, fM.Path, MESSAGE_TYPE.FILE_DELETED))); + u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, fM.Path, MESSAGE_TYPE.FILE_DELETED, args: received_message.Args))); if (enableDebug) DebugMessage(DateTime.Now.ToString() + " - Le client " + u.SessionID + " sait que " + fM.Path + " a été supprimé"); @@ -228,7 +228,8 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest var files = Directory.GetFiles("serverfiles/", "*.*", SearchOption.AllDirectories); // Renvois à la personne un objet de type Message contenant la liste des fichiers séparés par une virgule. - Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message(received_message.Content, String.Join(",", files).Replace("serverfiles/", string.Empty), MESSAGE_TYPE.LIST_FILE))); + Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message(received_message.Content, String.Join(",", files).Replace("serverfiles/", string.Empty), MESSAGE_TYPE.LIST_FILE, + args: received_message.Args))); if (enableDebug) DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " a reçu une liste des fichiers présents sur le serveur")); @@ -265,7 +266,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest { // Envois l'information que le fichier a été modifié // .Content est un objet de type FileMessage contenant le chemin d'accès au fichier + son nouveau contenue - u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, JsonConvert.SerializeObject(new FileMessage(fM.Path, content: fM.Content)), MESSAGE_TYPE.FILE_UPDATED))); + u.Send(JsonConvert.SerializeObject(new Message(received_message.Id, JsonConvert.SerializeObject(new FileMessage(fM.Path, content: fM.Content)), MESSAGE_TYPE.FILE_UPDATED, args: received_message.Args))); if (enableDebug) DebugMessage(DateTime.Now.ToString() + " - " + u.SessionID + " sait que le fichier " + fM.Path + " a été modifié"); @@ -286,7 +287,7 @@ static void appServer_NewRequestReceived(AppSession clientSession, StringRequest // Renvois le contenu du fichier au client dans un objet FileMessage // fM.Path = fichier // fM.Content = son contenue - Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message("server", JsonConvert.SerializeObject(new FileMessage(received_message.Content, content: content)), MESSAGE_TYPE.GET_FILE))); + Server.GetSessionByID(received_message.Id).TrySend(JsonConvert.SerializeObject(new Message("server", JsonConvert.SerializeObject(new FileMessage(received_message.Content, content: content)), MESSAGE_TYPE.GET_FILE, args:received_message.Args))); if (enableDebug) DebugMessage((DateTime.Now.ToString() + " - " + received_message.Id + " a reçu le contenu du fichier ") + received_message.Content);