2010-08-20 5 views
6

Ich frage mich, ob jemand hier einige Codebeispiele für die folgenden Szenarien bereitstellen kann. Ich bin besonders daran interessiert, xmpppy zu verwenden, um dies zu tun, da ich bereits die Bibliothek für meine App verwende, aber auch andere Bibliotheken sind in Ordnung. Es ist bedauerlich, dass die Website des xmpppy-Projekts keine Beispiele dafür enthält. Beim Durchsuchen der Expert/Advanced-API-Dokumentation konnte ich nicht herausfinden, wie das geht, oder wird Multi-User-Chat (MUC) nicht mit xmpppy unterstützt?So erstellen Sie MUC und senden Nachrichten an vorhandene MUC mit Python und XMPP

  • erstellen MUC von bestimmten Benutzern einlädt (etwa 2 oder 3)

  • Nachrichtens zu einem vorhandenen MUC (vorausgesetzt, Sie wissen, dass es MUC JID Griff oder Spitznamen)

  • aufblicken bestehenden MUCs auf dem XMPP-Server, um die JID oder den Nickname zu erhalten, usw. Wenn dies getan wird, indem man einen Dienstplan bekommt, wollen wir nur nach MUCs suchen und die Benutzer ignorieren.

fand ich irgendwie eine Antwort hier, aber dann würde ich wahrscheinlich neue Bibliothek API-Aufrufe muß lernen und herauszufinden, wie meine oben genannten Szenarien zu tun, wie diese Probe nicht alle von ihnen nicht abdeckt:

pyxmpp: quick tutorial for creating a muc client?

ich suche wirklich einen Lastgenerator zu tun, die Nachrichten an MUCs und die Schaffung von großen MUCs mit vielen Teilnehmern pumpt. Ich habe den Teil bereits eingerichtet, um Nachrichten an Benutzerempfänger zu pumpen.

Antwort

5

Während ich über bestimmte MUC-Schnittstelle dort nicht weiß, unterstützt xmpppy benutzerdefinierte Nachrichten, so dass es ganze XMPP unterstützt.

beizutreten Chat, müssen Sie Anwesenheit stranza schicken, conn.send(xmpp.Presence(to='{0}/{1}'.format(room, nick)))

eine Nachricht senden Chat:

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

Wie für die Schaffung neuer Chat oder es sucht in roster up, weiß ich nicht bereit halten Code zur Hand, aber es ist einfach in der gleichen Art und Weise zu schreiben, schauen gerade benötigt stranzas in 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 tut Unterstützung MUC Dienste, aber die Unterstützung ist sehr einfach und einige zusätzliche Code benötigt werden mehrere Räume zu verwalten.

Um einen MUC-Raum "anzuschließen", müssen Sie Ihre Anwesenheit an den JID senden.

conn.send(xmpp.Presence(to="%s/%s" % (room, nickname))) 

Um Nachrichten zu senden, senden Sie sie dann mit dem Nachrichtentyp 'groupchat' an die Raum-JID.

Wie für Ihre Frage in Bezug auf die Suche nach MUC-Zimmer, das wird über Service Discovery erfolgen.

+0

ja du hast recht mit entdeckung wir können eine liste von zimmern finden, aber wie? –