2010-08-20 16 views
6

Je me demandais si quelqu'un ici pouvait fournir des exemples de code sur les scénarios suivants. Je suis particulièrement intéressé par l'utilisation de xmpppy pour ce faire car j'utilise déjà la bibliothèque pour mon application, mais d'autres bibliothèques aussi. Il est regrettable que le site Web du projet xmpppy n'ait aucun échantillon à ce sujet. En parcourant les docs de l'API expert/avancé, je n'arrive pas à comprendre comment le faire, ou le chat multi-utilisateur (MUC) n'est-il pas supporté par xmpppy?Comment créer MUC et envoyer des messages à MUC existant en utilisant Python et XMPP

  • créer un CUM en invitant des utilisateurs spécifiques (par exemple 2 ou 3)

  • envoyer un message à un existant CUM (en supposant que vous savez qu'il est poignée ou pseudo CUM JID)

  • levez les yeux existants MUCs sur le serveur XMPP, obtenant le JID ou le surnom, etc. Si ceci est fait en obtenant la liste, nous voulons seulement rechercher des MUCs, ignorant des utilisateurs.

J'ai trouvé une sorte de réponse ici, mais je l'aurais sans doute d'apprendre de nouveaux appels API de bibliothèque et de savoir comment faire mes scénarios mentionnés ci-dessus que cet échantillon ne couvre pas tous:

pyxmpp: quick tutorial for creating a muc client?

Je suis vraiment faire un générateur de charge qui pompe des messages à GCU et la création d'un grand GCU avec de nombreux participants. J'ai déjà la pièce en place pour le pompage des messages aux destinataires de l'utilisateur.

Répondre

5

Bien que je ne connaisse pas d'interface MUC spécifique, xmpppy prend en charge les messages personnalisés, donc il prend en charge XMPP entier.

Pour rejoindre le chat, vous devez envoyer présence stranza, conn.send(xmpp.Presence(to='{0}/{1}'.format(room, nick)))

Pour envoyer un message à discuter:

stranza = "<message to='{0}' type='groupchat'><body>{1}</body></message>".format(room, text) 
    conn.send(stranza) 

En ce qui concerne la création de nouveau chat ou à la recherche vers le haut en liste, je ne avoir le code prêt à la main, mais il est facile d'écrire de la même façon, il suffit de regarder des stranzas nécessaires XEPS:

http://xmpp.org/extensions/xep-0045.html#createroom

http://xmpp.org/extensions/xep-0045.html#disco-rooms

http://xmpp.org/extensions/xep-0045.html#invite

5

Xmpppy pris en charge par l'utilisation des services CUM, mais le soutien est très basique et un code supplémentaire sera nécessaire pour gérer plusieurs chambres. Pour «joindre» une salle MUC, vous devez diffuser votre présence au JID. Puis, pour envoyer des messages, vous les envoyez en utilisant le type de message 'groupchat' dans le JID de la pièce. En ce qui concerne votre question concernant la recherche de salles MUC, cela se fera par la découverte du service.

+0

oui vous avez raison en utilisant la découverte, nous pouvons trouver la liste des chambres, mais comment? –