0

我正在自定义模块mod_muc_room,我想添加一个知道用户是否在线但只提供用户名的功能。在模块中我可以找到函数is_user_online

is_user_online(JID, StateData) ->

LJID = jlib:jid_tolower(JID),

?DICT:is_key(LJID, StateData#state.users).

我知道我必须提供用户名、服务器和资源。LJID,会导致类似{"user", "myserver.com, "someid"}

我想添加一个返回相同但只提供“用户”的函数

User = "user",

is_member_online(User, StateData) ->

?DICT:is_key(User, StateData#state.users).

我可以就如何实现这一目标提出一些建议吗?

4

1 回答 1

0

您可以使用它来获取主机列表:

ejabberd_config:get_global_option(hosts)

然后使用它来检查用户是否在线:

ejabberd_sm:get_user_resources(User, Host)

如果用户离线,这将返回一个空数组。

于 2013-02-15T20:14:36.660 回答