ejabberd 添加 iq 处理程序

Posted

技术标签:

【中文标题】ejabberd 添加 iq 处理程序【英文标题】:ejabberd add iq handler 【发布时间】:2013-03-26 13:47:15 【问题描述】:

我创建了一个 iq 处理程序。调用它时,它会打印出这个错误

function_clause,[jlib,iq_to_xml,[ok],
                     gen_iq_handler,process_iq,6,
                     gen_iq_handler,handle_info,2,
                     gen_server,handle_msg,5,
                     proc_lib,init_p_do_apply,3]

【问题讨论】:

【参考方案1】:

您应该从 iq 处理程序返回 #iq 记录而不是 ok 原子。让我们看看您的代码更具体。

【讨论】:

send_message_delivery_ids(ResultFlags, From, To) -> XmlBody = xmlelement, "iq",["id","aeb214","to", From ,"type" ,"chat"], [ xmlelement, "result", ["xmlns","urn:xmpp:requestdelivery"], ResultFlags ] , ejabberd_router:route(From, To, XmlBody)。其中 ResultFlags = [ [xmlelement, "deliverystatus", [ "messageid","DLORQ-22", "status","1" ], []] 您不需要自己路由结果 iq。您应该从 #iq 记录中的 iq 处理程序返回它。

以上是关于ejabberd 添加 iq 处理程序的主要内容,如果未能解决你的问题,请参考以下文章

Python 和 EJABBERD/XMPP [关闭]

通过 Mule ESB CE 连接 Ejabbered

XMPP:Ejabberd 未将具有命名空间前缀的自定义 IQ 转发给用户

Ejabberd 通过 Web 界面安装 mod_multicast 模块

Ejabberd 服务器未显示管理面板

xml,append_subtags 时出现 Ejabberd 错误