0

我正在尝试从此处实现 mod_http_offline以在目标客户端离线时发送 POST 请求,但总是收到以下错误消息:

2018-06-25 11:16:19.202 [错误] <0.542.0>@ejabberd_hooks:safe_apply:383 Hook offline_message_hook 在运行 mod_http_offline_post:create_message/1 时崩溃:** 原因 = {error,undef,[{mod_http_offline_post,create_message, [],[{bounce,{message,<<"1529900178124">>,chat,<<"en">>,{jid,<<"10000537_agent">>,<<"metachat.release">>,< <"862193039807052">>,<<"10000537_agent">>,<<"metachat.release">>,<<"862193039807052">>},{jid,<<"10000091_agent">>,<<"metachat.发布">>,<<>>,<<"10000091_agent">>,<<"metachat.release">>,<<>>},[],[{文本,<<>>,<<"{\"data\":{\"contactData\":[],\"content\":\"Asdfg\"},\"type\":\"chat\"}">>}],未定义, [{xmlel,<<"request">>,[{<<"xmlns">>,<<"urn:xmpp:receipts">>}],[]}],#{ip => {192,168,100,222}} }}]},{ejabberd_hooks,safe_apply,[{file,"src/ejabberd_hooks.erl"},{line,380}],4},{ejabberd_hooks,run_fold1,[{file,"src/ejabberd_hooks.erl"} ,{line,364}],4},{ejabberd_sm,route,[{file,"src/ejabberd_sm.erl"},{line,146}],1},{ejabberd_local,route,[{file,"src /ejabberd_local.erl"},{line,101}],1},{ejabberd_router,do_route,[{file,"src/ejabberd_router.erl"},{line,372}],1},{ejabberd_router,route, [{file,"src/ejabberd_router.erl"},{line,93}],1},{ejabberd_c2s,check_privacy_then_route,[{file,"src/ejabberd_c2s.erl"},{line,823}],2}]}

我使用的是 18.04,所以可能有些语法已经过时了,但是由于我是 ejabberd 和 Erlang 的新手,所以我无法找到问题的根源。请帮助,任何答案将不胜感激。

4

1 回答 1

1

mod_http_offline.erl 最后一次修改是在四年前。您在最近的 ejabberd 中安装了该模块。从那时起,ejabberd 对钩子的调用发生了很大变化,并且该模块不兼容。

于 2018-06-27T09:48:00.440 回答