メッセージが Ejabberd サーバーに到達したことをクライアント側で検証する必要があります。私にとって最も簡単な方法は、フックがメッセージをユーザーに返し、クライアントが検証するようにコーディングするようです。
すべての着信メッセージによってトリガーされることを確認した mod_stanza_ack が見つかりました。
質問は次のとおりです。
フック内からユーザーにメッセージを返すにはどうすればよいですか?
迅速な解決策が必要です。
-module(mod_stanza_ack).
-behaviour(gen_mod).
-include("ejabberd.hrl").
-export([start/2,
stop/1]).
-export([on_user_send_packet/3]).
start(Host, _Opts) ->
?INFO_MSG("mod_stanza_ack starting", []),
ejabberd_hooks:add(user_send_packet, Host, ?MODULE, on_user_send_packet, 0),
ok.
stop(Host) ->
?INFO_MSG("mod_stanza_ack stopping", []),
ejabberd_hooks:delete(user_send_packet, Host, ?MODULE, on_user_send_packet, 0),
ok.
on_user_send_packet(From, To, Packet) ->
?INFO_MSG("mod_stanza_ack a package has been sent coming from: ~p", [From]),
?INFO_MSG("mod_stanza_ack a package has been sent to: ~p", [To]),
?INFO_MSG("mod_stanza_ack a package has been sent with the following packet: ~p", [Packet]),
Packet.