Bonjour,

EDIT:
Je reviens cela dit sur le sujet au sujet d'un gestionnaire d'évenements..
Les événements peuvent être n'importe quoi, n'importe quelle ligne renvoyé par le serveur peut être potientiellement un événement, un message, une deconnexion, une invitation, un kick, etc...

Comment mettre en place un tel système ? de manière modulable.

Auriez vous quelques exemples ? Documentations à ce sujet ?

Merci d'avance..


J'ai besoin de développer un client IRC, pour l'instant sans gui, juste en ligne de commande...
Bref, pour commencer j'ai cherché s'il existant un module IRC, mais ceux que j'ai trouvé ne me convenait guère.. et puis j'ai le temps...

Pour commencer donc, j'ai décidé d'écrire simplement une classe IRC, qui fera l'abstraction de la connexion, ainsi que de l'envoie de commande 'raw' au serveur (je l'étendrai ensuite pour faciliter les commandes classiques).

Mais voilà, je débute dans ce genre de programmation, et voilà qu'après quelques lignes je bloque..


En effet, je n'arrive pas à gérer de manière asynchrone l'entrée de commande par un utilisateur, et les données envoyées par le serveur.

Un exemple concret :
Je me connecte au serveur j'envoie les informations nécessaires (nick, username, etc..)

Une fois la connexion terminée j'aimerai proposé à l'utilisateur un prompt simple du genre 'Entrez le salon que vous souhaitez rejoindre: ' avec un raw_input()

Mais voilà, si je veux être attentif aux données envoyés par le serveur, j'ai besoin de faire

while 1:
data = s.recv(1024)
if not data:
break
print data

Dans le cadre de cette boucle je peux évidement ajouter mon 'raw_input' mais dans ce cas, je devrais attendre que l'utilisateur tape qqchose pour afficher la ligne suivante...

J'ai étendu parler des callbacks mais je ne suis pas sur que ça soit la solution, et je n'ai pas encore trop saisi leurs utilisations ainsi que leur applications..

Auriez vous quelques idées ? Des conseils sur l'algorithmie à adopter ?

Merci d'avance !