我正在自定义模块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).
我可以就如何实现这个目标提出一些建议吗?
答案 0 :(得分:0)
您可以使用它来获取主机列表:
ejabberd_config:get_global_option(hosts)
然后使用它来检查用户是否在线:
ejabberd_sm:get_user_resources(User, Host)
如果用户离线,这将返回一个空数组。