【问题标题】:ejabberd add iq handlerejabberd 添加 iq 处理程序
【发布时间】: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}]}

【问题讨论】:

    标签: erlang ejabberd


    【解决方案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 处理程序返回它。
    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 2016-06-16
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多