所以这是我的问题,我有一个 Ejabberd 服务器正在运行,我尝试使用 xmpppy 实现我自己的 XMPP API,但目前我不知道为什么我在 MUC 上的 echo bot 不起作用。我已经在私人消息/离线队列上制作了一个回声机器人,它正在工作,但在这里它似乎连接但无法读取消息这里是 MUC Echo 机器人的代码:
def messageCB(self,conn,msg):
print(msg.getType())
if msg.getType() == "groupchat":
print(str(msg.getFrom()) +": "+ str(msg.getBody()))
if msg.getType() == "chat":
print("private: " + str(msg.getFrom()) + ":" +str(msg.getBody()))
def StepOn(self,conn):
try:
conn.Process(1)
except KeyboardInterrupt:
return 0
return 1
def GoOn(self,conn):
while self.StepOn(conn):
pass
def receive_muc(self, muc_room):
client=xmpp.protocol.JID(self.jid)
cl = xmpp.Client(client.getDomain(), debug=[])
cl.connect()
cl.auth(client.getNode(),self.passw)
cl.sendInitPresence()
cl.RegisterHandler('message', self.messageCB)
room = muc_room
print("Joining " + room)
cl.send(xmpp.Presence(to="%s %s" % (room, self.jid)))
self.send_muc("I'm online !", room)
self.GoOn(cl)
当我运行此消息时,消息发送没有任何问题,它正在等待新消息打印它,但即使我在机器人使用另一个 python 脚本运行时尝试发送消息,并且它似乎已连接时,也没有任何反应在终端中并且仍在运行,在 ejabberd 的 Web 界面上,这就是显示的Ejabberd 网页。
所以在网页上似乎没有在 MUC 上连接 echo bot。
提前感谢您的帮助!