2010-03-02 14 views
6

che sto cercando di scrivere uno script di carico-test rapido per il nostro gruppo ejabberd che registra semplicemente in una chat room, i messaggi un paio di messaggi casuali, poi esce.pyxmpp: tutorial veloce per creare un client muc?

Ci avevano tentato questo test particolare Tsung, ma secondo gli autori, la funzionalità MUC non ha fatto in questa release.

pyxmpp sembra avere questa funzionalità, ma rammendato se riesco a capire come farlo funzionare. Ecco sperando che qualcuno abbia una rapida spiegazione su come costruire il client e unirsi/postare al muc.

Grazie!

risposta

6

Hey ho inciampato sopra la vostra domanda un paio di volte, durante il tentativo la stessa cosa. Ecco la mia risposta:

Utilizzando http://pyxmpp.jajcus.net/svn/pyxmpp/trunk/examples/echobot.py come QuickStart, tutto quello che dovete fare è importare il MUC-Stuff

from pyxmpp.jabber.muc import MucRoomState, MucRoomManager 

E una volta che è collegato il client, è possibile collegare alla vostra camera:

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() 

per inviare un messaggio, tutto ciò che dovete fare è chiamare self.roomState.send_message ("Invio questo messaggio")

per fare cose, ereditano da MucRoomHandler e reagire sugli eventi. Si noti il ​​"set_handlers()" per RoomManager, però, è importante, altrimenti callback non saranno chiamati ..

+0

Questo è il biglietto! Grazie! – Lysdexia