同じことを試しているときに、あなたの質問に何度か出くわしました。これが私の答えです:
http://pyxmpp.jajcus.net/svn/pyxmpp/trunk/examples/echobot.pyをクイックスタートとして使用して、MUC-Stuff をインポートするだけです。
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('room@conference.server.domain'),
nick='PartyBot',
handler=self.roomHandler,
history_maxchars=0,
password = None)
self.roomManager.set_handlers()
メッセージを送信するには、self.roomState.send_message("Sending this Message") を呼び出すだけです。
何かを行うには、MucRoomHandler から継承し、イベントに反応します。ただし、roomManager への「set_handlers()」に注意してください。これは重要です。そうしないと、コールバックが呼び出されません。