0

メッセージが 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.
4

1 に答える 1