Envoi de messages à un groupe d'utilisateur prédéfini

Résolu
Bastien35 Messages postés 20 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 25 septembre 2007 - 31 août 2007 à 10:44
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.

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2007 à 12:48
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 sept. 2007 à 20:10
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 sept. 2007 à 19:59
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)
3
Bastien35 Messages postés 20 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 25 septembre 2007
2 sept. 2007 à 13:52
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bastien35 Messages postés 20 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 25 septembre 2007
4 sept. 2007 à 17:38
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.
0
Bastien35 Messages postés 20 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 25 septembre 2007
17 sept. 2007 à 11:21
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
0
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 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.
0
Rejoignez-nous