Envoi de messages à un groupe d'utilisateur prédéfini [Résolu]

Messages postés
20
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
25 septembre 2007
- - Dernière réponse : Bastien35
Messages postés
20
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
25 septembre 2007
- 25 sept. 2007 à 11:07
Bonjour,
J'ai développé une application client/serveur basée sur les winsocks. Cette application permet l'envoi de message en interne. Actuellement, toutes les personnes connectées au serveur reçoivent les messages.
Dans un soucis d'amélioration, j'aimerais que l'on puisse prédéfinir une groupe de personnes auquel sera envoyer ces messages. Toutes personnes non membres de ce groupe ne recevra donc pas ces messages.
J'ai parcours plusieurs sites et forums, mais je n'ai rien trouvé de très concluant.

Si vous avez des suggestions, je suis prenneur.
Merci par avance pour vos réponses.
Bonne journée à tous.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
3
Merci
Salut
Ta question relève surtout de l'organisaton de ton programme.
Est-ce que, côté serveur, tu identifies les clients qui sont connectés ? (par un login ou le nom de leur machine ou leur IP)
Si oui, tu n'as plus qu'à créer un groupe (une collection) qui liste les noms/login/IP des clients privilégiés. Quand tu as besoin d'envoyer un message aux personnes de ce groupe, tu vas rechercher leurs noms/login/IP dans ton groupe et tu envoies le message.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
3
Merci
Re
Oui, en effet, j'avais répondu, mais à côté de la plaque : C'était du code VB6 qui utilise les index de composant, chose impossible en .Net.
Il te faut donc passer par une Classe qui renfermera une Collection des éléments dont tu as besoin pour t'organiser.
Mais le .Net, c'est pas ma tasse de thé, alors mes conseils s'arrêtent là, désolé.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
60
3
Merci
Salut Bastien et désolé de ne pas avoir suivi cette conversation (je n'avais pas coché le "Envoyer un mail lorsque ...")
Le code que je t'avais proposé en VB6 a été supprimé définitivement, hélas.
Je vais donc tenter de te le reproduire :


Il te faut créer un groupe d'utilisateur :
Public Type typeGroupe
   Pseudo   As String
   AdrIP    As String
End Type
Public monGroupe(1 To 10) As typeGroupe
 ' Ce groupe acceptera 10 membres
A toi de voir quelle dimension doit avoir le tableau.
Dedans, tu rangeras les pseudos des gens appartenant à ce groupe et, à chaque connexion d'un client, tu testeras si ce Pseudo fait partie du groupe afin de renseigner AdrIP :
For r = 1 To UBound(monGroupe)
   If LePseudoQuiVientDeSeLoguer = monGroupe(r).Pseudo Then
      monGroupe(r).AdrIP = LeWinsockDuPseudo.RemoteHost
      Exit For
   End If
Next t
Si tu veux gérer plusieurs groupes, il faudra compliquer la chose en dimensionnant ton groupe avec 2 dimensions :
Public monGroupe(1 To 4, 0 To 10) As typeGroupe

en réservant la variable monGroupe(x, 0).Pseudo pour le nom du Groupe (exemple)

Ensuite, au moment d'expédier ton message aux membres du groupe :
For r = 1 To UBound(mesWinSocks)
   If mesWinsocks(r).State = sckConnected Then
      For t = 0 To UBound(monGroupe)
         If mesWinsocks(r).RemoteHost = monGroupe(t).AdrIP Then
            mesWinsocks(r).SendData "mon message"
            DoEvents
            Exit For
         End If
      Next t
   End If
Next r

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés


<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
20
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
25 septembre 2007
0
Merci
Bonjour,

Jack, merci pour ta réponse.
En effet, mes client sont identifiés par un user et mot de passe. Ces paramètres sont sauvegardés dans un fichier txt chargé au démarrage de mon application serveur.

Je comprends bien ta proposition mais je ne vois pas très bien comment la mettre en oeuvre...
Notament la notion de collection. En gros, j'aimerais que l'administrateur du serveur puisse créer un groupe (ex: secrétariat) et y ajoute des utilisateurs. Je vois bein les "forms", les conceptions, mais le code ???  et surtout celui lors de la procédure d'envoi...

Je peux mettre un partie de mon code à ta disposition (en plus, cela pourra surment m'être utile que quelqu'un de compétent y jet un coup d'oeil averti).

Merci par avance pour toutes vos réponses.
Bonne journée à tous.
Commenter la réponse de Bastien35
Messages postés
20
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
25 septembre 2007
0
Merci
Bonjour Jack,

Je n'arrive plus à retrouver la réponse que tu m'a faite après mon post du 02/09/2007 à 13:52:57!!!
Je l'ai pourtant lus hier soir ... Tu me parlais de tableau et tu m'avais écris des lignes de codes.
Pourrais-tu, s'il te plait, me renvoyer ta réponse.

D'avance merci.
Bonne journée.
Commenter la réponse de Bastien35
Messages postés
20
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
25 septembre 2007
0
Merci
Bonjour Jack,


Tu pourrais me remettre le code car je développe en VB6, donc ça m'intéresse grandement.

Merci encore pour tes réponses.

Bonne journée
Commenter la réponse de Bastien35
Messages postés
20
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
25 septembre 2007
0
Merci
Bonjour Jack,

Encore milles merci pour tes réponses. Tu me tire une épine du pieds.
Merci aussi pour la rapidité de tes réponses.
Bien amicalement.
Bastien

Bonne journée et à plus tard pour d'autres questions peut être.
Commenter la réponse de Bastien35