使用xmlrpc.client接收python中任何用户的消息



我在python中使用ejabberd,我找到了一种发送消息的方法,但如何在我的python控制台中获得消息或接收这些消息,请建议我一些方法或方法。

要发送消息,我的代码是

import  xmlrpc.client as xmlrpclib 
server_url = 'http://127.0.0.1:5180/xmlrpc/'
server = xmlrpclib.ServerProxy(server_url)
EJABBERD_XMLRPC_LOGIN = {'user':'yatish', 'server':'localhost', 'password':'1234', 'admin':False}
def ejabberdctl(command, data):
fn = getattr(server, command)
print(fn.__dict__,'>>>>>>>>>>')
return fn(EJABBERD_XMLRPC_LOGIN, data)
result = ejabberdctl('send_message', {"type":"chat","from":"yatish@localhost","to":"1@localhost",
"subject":"backend subject","body":"Hey this is message from python1"})

在这里我可以发送消息yatish@localhost对于1@localhost用户,我想获得1@lcoalhost收到的所有消息,你能给我建议一些方法吗?我已经检查了所有的文档和谷歌,但无法获得在python中接收所有这些消息的方法。如果接收到消息,则客户端应该连接并接收消息关系。

感谢

您编写了一个XMLRPC客户端来使用ejabberd的"发送消息";用于执行此任务的管理命令。

但是ejabberd中没有任何管理命令来检查或读取XMPP消息。

我建议您采用不同的方法:忘记使用XMLRPC或ejabberd命令。相反,编写一个小型XMPP客户端(python中有相应的库,请参阅https://xmpp.org/software/libraries/(。

您的XMPP客户端应该:

  1. 登录FROM帐户
  2. 发送消息
  3. 注销

然后编写另一个

  1. 登录to帐户,并提供可能的存在号码
  2. ejabberd将立即向他发送存储的脱机消息
  3. 对这些消息执行任何操作,然后注销

如果你能够用你喜欢的语言(Python或其他语言(编写这些XMPP客户端,你可以将这些客户端与任何XMPP服务器一起使用:ejabberd,或者你可能想在其他机器上或将来安装的任何其他服务器。

最新更新