如何在我的 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
。
我尝试编写 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
。