如何在我的 ejabber 模块中使用 "ejabber_sm"?

How use "ejabber_sm" in my ejabber module?

我尝试编写 ejabber 模块。我尝试使用 ejabber_sm,但找不到示例。 我试试:

-module(mod_auto_muc).

-behavior(gen_mod).

-include("ejabberd.hrl").
-include("logger.hrl").

-export([start/2, stop/1, on_user_available/1]).

start(Host, _Opts) ->
    ?INFO_MSG("mod_auto_muc starting on Host: ~p", [Host]),
    ejabberd_hooks:add(user_available_hook, Host, ?MODULE, on_user_available, 50),
    ok.

stop(Host) ->
    ?INFO_MSG("mod_auto_muc stopping on Host: ~p", [Host]),
    ejabberd_hooks:delete(user_available_hook, Host, ?MODULE, on_user_available, 50),
    ok.

on_user_available(Jid) ->
    ConnectedUsers = ejabber_sm:connected_users(),
    ?INFO_MSG("Connected users ~p", [ConnectedUsers]),
    ok.

在 运行 之后我得到:

[error] {undef,[{ejabber_sm,get_user_resources,[<<"atterratio">>,<<"localhost">>],[]}

我认为需要连接额外的模块但不知道是什么。 谁能告诉在这种情况下。或者更好的是 link 为 ejabberd 编写不同模块的示例。除了this.

项目名为 ejabberd,最后有一个 d,模块也是如此:它应该是 ejabberd_sm,而不是 ejabber_sm