从ejabberd服务器15.09路由自定义数据包失败



我正在使用ejabberd 15.09并试图创建一个模块来发送确认消息以返回收到的消息,我在路由此数据包时遇到错误。

错误日志:

2015-10-08 11:10:57.333 [error] <0.437.0>@ejabberd_sm:route:118{function_clause, [{ejabberd_sm do_route, [{jid & lt; & lt;"1234567890">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"asdfgfd23f4">>,& lt; & lt;"1234567890">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"asdfgfd23f4">>},{jid & lt; & lt;"0987654321">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"Bruno.7B81FB19">>,& lt; & lt;"0987654321">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"Bruno.7B81FB19">>},{xmlelement,"消息",[{"id",& lt; & lt;"abc4a">>},{"类型","Ack_receipt"},{"从",& lt; & lt;"1234567890 @x.xyz.com/asdfgfd23f4">>},{"到"& lt; & lt;"0987654321 @x.xyz.com/bruno.7B81FB19">>}]、[{xmlelement,"身体",[],[{xmlcdata & lt; & lt;"消消息 ">>}]}]}],[{ 文件,"src/ejabberd_sm.erl"},{线424}]},{ejabberd_sm,路线,3,[{文件,"src/ejabberd_sm.erl"},{线116}]},{ejabberd_local,路线,3,[{文件,"src/ejabberd_local.erl"},{线112}]},{ejabberd_router,路线,3,[{文件,"src/ejabberd_router.erl"},{线75}]},{mod_ack log_packet 3,[{文件,"src/mod_ack.erl"},{,32}]},{mod_ack on_user_send_packet 4,[{文件,"src/mod_ack.erl"},{,28日}]},{ejabberd_hooks safe_apply 3,[{文件,"src/ejabberd_hooks.erl"},{线385}]},{ejabberd_hooks run_fold1 4, [{file,"src/ejabberd_hooks.erl"},{线368}]}]}

当处理:{{jid & lt; & lt;"1234567890">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"asdfgfd23f4">>,& lt; & lt;"1234567890">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"asdfgfd23f4">>},{jid & lt; & lt;"0987654321">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"Bruno.7B81FB19">>,& lt; & lt;"0987654321">>,& lt; & lt;"x.xyz.com">>,& lt; & lt;"Bruno.7B81FB19">>},{xmlelement,"消息",[{"id",& lt; & lt;"abc4a">>},{"类型","Ack_receipt"},{"从",& lt; & lt;"1234567890 @x.xyz.com/asdfgfd23f4">>},{"到"& lt; & lt;"0987654321 @x.xyz.com/bruno.7b81fb19">>}],[{xmlelement,"身体",[],[{xmlcdata, & lt; & lt;"消消息 ">>}]}]}}

您正在格式化一条xmlelement记录。这种格式已经过时了。最新ejabberd上的报文记录为xmlel记录。你需要更新你的代码来支持新的格式。

记录格式描述如下:https://github.com/processone/xml/blob/master/include/xml.hrl

最新更新