如何在ejabberd模块内从一个用户向另一个用户发送消息

时间:2018-02-26 10:37:06

标签: erlang xmpp ejabberd

我正在尝试将消息从一个用户发送到另一个用户。我不想从客户端发送消息,因为我使用mod_rest来捕获HTTP请求,但是我无法正确地将消息节从一个用户路由到另一个用户。

我尝试拨打mod_mam:user_send_packet,但邮件尚未保存在收件人档案中。

有没有解决这些问题的干净方法?

1 个答案:

答案 0 :(得分:0)

您必须使用ejabberd_router:route/1。 要了解有关其可能参数的更多信息,请阅读xmpp_codec.hrliqmessagepresence条记录。
对于c2s,聊天ejabberd_router使用ejabberd_sm模块发送数据包。 ejabberd_sm添加offline_message_hookhere它会运行此挂钩。在here模块mod_offline中使用offline_message_hook。因此,当接收器处于脱机状态且mod_offline处于活动状态时,将存储消息。