问题描述
我正在尝试从ejabberd服务器向客户端手动发送消息。我创建了一个模块,并使用offline_message_hook将消息发送到FCM并对FCM响应采取了措施。如果我在FCM响应中没有收到任何错误,我尝试向发送方发送确认消息,该消息已发送到FCM。我正在使用erlang为ejabberd服务器创建模块。当我尝试发送这样的消息时:
ejabberd_ctl:send_message("normal",From,To,"ack","101020").
我收到此错误:
exception error: undefined function ejabberdctl:send_message/5
in function mod_http_offline:create_message/1 (/opt/ejabberd-modules/mod_http_offline.erl,line 36)
in call from ejabberd_hooks:safe_apply/4 (src/ejabberd_hooks.erl,line 236)
in call from ejabberd_hooks:run_fold1/4 (src/ejabberd_hooks.erl,line 217)
in call from ejabberd_sm:route/1 (src/ejabberd_sm.erl,line 146)
in call from ejabberd_router:do_route/1 (src/ejabberd_router.erl,line 399)
in call from ejabberd_router:route/1 (src/ejabberd_router.erl,line 92)
in call from ejabberd_c2s:check_privacy_then_route/2 (src/ejabberd_c2s.erl,line 855)
错误似乎是该模块无法访问该函数,但我不知道要使用此函数需要包含哪个文件? 当我尝试发送这样的消息时:
XmlBody = {xmlelement,"message",[{"id",[]},{"type","normal"},{"from",From},{"to",To}],[{xmlelement,"body",[],[{xmlcdata,<<"Test Message">>}]}]},ejabberd_router:route(From,XmlBody);
我收到此错误:
exception error: no function clause matching
ejabberd_router:route(<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>,<<"67456efc-be57-4cbd-a176-527de2dce19d">>,{xmlelement,<<"e5d6d83c-ea77-4d10-aaac-4e0e38899ac2">>},<<"67456efc-be57-4cbd-a176-527de2dce19d">>}],<<"Test Message">>}]}]}) (src/ejabberd_router.erl,line 101)
in function mod_http_offline:create_message/1 (/opt/ejabberd-modules/mod_http_offline.erl,line 38)
in call from ejabberd_hooks:safe_apply/4 (src/ejabberd_hooks.erl,line 855)
我不明白此错误。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)