Bonsoir,
Je suis actuellement en train de faire un serveur de chat. (et en même temps débute un peu dans le JS)
L'envoi de messages à tout les utilisateurs fonctionne parfaitement, cependant j'ai un petit soucis pour l'envoi de message privé vers un user précis.
Voilà mon code:
Quand l'user tape /msg user message c'est catché avec le match et j'enregistre le pseudo et le message dans 2 variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // Private messages var command = data.match(/^\/msg(.*) (.*)/) if (command) { privateUser = command[1]; privateMsg = command[2]; clients.forEach(function(c) { console.log(c.name); // Check if don't send to yourself and set the selected user if (c != client && c.name == privateUser) { console.log("1"); c.socket.write(client.name + ":" + privateMsg + '\0'); } }); return; }
Ensuite le console.log(c.name); me retourne bien ma liste d'users connectés, dont celui que j'ai choisit bien entendu, jusque là c'est bon.
Mais arrivé au if, il prend bien le c != client qui désigne le client actuel pour ne pas s'envoyer le message à soit même, mais le c.name == privateUser sensé désigner l'utilisateur à qui sera envoyé le message lors du c.socket.write au lieu de tout le monde, il n'en veut pas.
Et là j'avoue que je bloque, je ne vois pas où est le problème.
Quelqu'un a une idée svp ?
Merci beaucoup.
Partager