2010-03-02 9 views
6

मैं अपने ejabberd क्लस्टर के लिए एक त्वरित लोड-टेस्ट स्क्रिप्ट लिखने का प्रयास कर रहा हूं जो बस चैट रूम में लॉग इन करता है, कुछ यादृच्छिक संदेश पोस्ट करता है, फिर बाहर निकलता है।pyxmpp: एक muc क्लाइंट बनाने के लिए त्वरित ट्यूटोरियल?

हमने इस विशेष परीक्षण को सुंग के साथ प्रयास किया था, लेकिन लेखकों के मुताबिक, म्यूक कार्यक्षमता ने इसे इस रिलीज में नहीं बनाया।

pyxmpp में यह कार्यक्षमता प्रतीत होती है, लेकिन अगर मैं इसे समझने के तरीके को समझ सकता हूं तो खराब हो गया। यहां उम्मीद है कि किसी के पास क्लाइंट बनाने और म्यूक में शामिल/पोस्ट करने के बारे में त्वरित स्पष्टीकरण है।

धन्यवाद!

उत्तर

6

अरे, मैंने एक ही चीज़ की कोशिश करते समय कुछ बार आपके प्रश्न पर ठोकर खाई। यहाँ मेरी जवाब है:

एक त्वरित प्रारंभ के रूप में http://pyxmpp.jajcus.net/svn/pyxmpp/trunk/examples/echobot.py का उपयोग करना, तुम सब करने की है आयात MUC-सामग्री

from pyxmpp.jabber.muc import MucRoomState, MucRoomManager 

और एक बार अपने ग्राहक से जुड़ा हुआ है, आप अपने कमरे से कनेक्ट कर सकते है:

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

संदेश भेजने के लिए, तुम सब करने की है कॉल self.roomState.send_message ("इस संदेश भेजा जा रहा है")

सामान करने के लिए, से विरासत है MucRoomHandler और घटनाओं पर प्रतिक्रिया। कमरे प्रबंधक में "set_handlers()" पर ध्यान दें, हालांकि यह महत्वपूर्ण है, अन्यथा कॉलबैक नहीं कहा जाएगा ..

+0

यह टिकट है! धन्यवाद! – Lysdexia

संबंधित मुद्दे