2010-03-02 13 views
6

Estoy intentando escribir un script de prueba de carga rápido para nuestro clúster de ejabberd que simplemente inicia sesión en una sala de chat, publica un par de mensajes aleatorios y luego sale.pyxmpp: tutorial rápido para crear un cliente MUC?

Hemos intentado esta prueba en particular con tsung, pero según los autores, la funcionalidad de muc no se incluyó en esta versión.

pyxmpp parece tener esta funcionalidad, pero zurcido si puedo encontrar la manera de hacerlo funcionar. Aquí esperamos que alguien tenga una explicación rápida de cómo construir el cliente y unirse/publicar al máximo.

Gracias!

Respuesta

6

Oye, me tropecé con su pregunta algunas veces, al intentar lo mismo. Aquí es mi respuesta:

Usando http://pyxmpp.jajcus.net/svn/pyxmpp/trunk/examples/echobot.py como un inicio rápido, todo lo que tiene que hacer es importar el MUC-Materia

from pyxmpp.jabber.muc import MucRoomState, MucRoomManager 

Y una vez que su cliente está conectado, se puede conectar a su habitación:

def session_started(self): 
    """Handle session started event. May be overriden in derived classes. 
    This one requests the user's roster and sends the initial presence.""" 
    print u'SESSION STARTED' 
    self.request_roster() 
    p=Presence() 
    self.stream.send(p) 
    print u'ConnectToParty' 
    self.connectToMUC() 

def connectToMUC(self): 
    self.roomManager = MucRoomManager(self.stream); 
    self.roomHandler = MucRoomHandler() 
    self.roomState = self.roomManager.join(
     room=JID('[email protected]'), 
     nick='PartyBot', 
     handler=self.roomHandler, 
     history_maxchars=0, 
     password = None) 
    self.roomManager.set_handlers() 

para enviar un mensaje, todo lo que tiene que hacer es self.roomState.send_message llamada ("el envío de este mensaje")

para hacer cosas, heredan de MucRoomHandler y reacciona a los eventos. Sin embargo, observe el "set_handlers()" para roomManager, es importante, de lo contrario no se llamarán las devoluciones ..

+0

¡Esa es la entrada! ¡Gracias! – Lysdexia