Je n'arrive pas à comprendre le problème et je veux savoir si mon code Python est incorrect ou s'il s'agit d'un problème ou d'une limitation de conception de Python XMPP bibliothèque. Je suis nouveau à Python au fait.python-xmpp et en boucle dans la liste des destinataires pour recevoir et message IM
Voici des extraits de code en question ci-dessous. Ce que je voudrais faire est de lire dans un fichier texte des destinataires de messagerie instantanée, un destinataire par ligne, au format XMPP/Jabber ID. Ceci est lu dans une variable de liste Python. Puis, j'instancie une session client XMPP et fais une boucle dans la liste des destinataires et envoie un message à chaque destinataire. Ensuite, dormez un peu de temps et répétez le test. C'est pour tester le client de messagerie instantanée des destinataires ainsi que le serveur de messagerie instantanée. Il y a du code pour gérer alternativement le cas de prendre seulement un destinataire de l'entrée de la ligne de commande au lieu du fichier. Ce qui finit par arriver, c'est que Python parcourt la liste, mais seul le dernier destinataire de la liste reçoit le message. Changer l'ordre des destinataires à vérifier. Le type de bibliothèque Python XMPP ne l'envoie pas correctement, ou il me manque une étape avec les appels de bibliothèque, car les instructions d'impression de débogage pendant l'exécution indiquent que la boucle fonctionne correctement.
recipient = ""
delay = 60
useFile = False
recList = []
...
elif (sys.argv[i] == '-t'):
recipient = sys.argv[i+1]
useFile = False
elif (sys.argv[i] == '-tf'):
fil = open(sys.argv[i+1], 'r')
recList = fil.readlines()
fil.close()
useFile = True
...
# disable debug msgs
cnx = xmpp.Client(svr,debug=[])
cnx.connect(server=(svr,5223))
cnx.auth(user,pwd,'imbot')
cnx.sendInitPresence()
while (True):
if useFile:
for listUser in recList:
cnx.send(xmpp.Message(listUser,msg+str(msgCounter)))
print "sending to "+listUser+" msg = "+msg+str(msgCounter)
else:
cnx.send(xmpp.Message(recipient,msg+str(msgCounter)))
msgCounter += 1
time.sleep(delay)