Xmpp 从ejabberd模块访问muc名册(迪斯科舞厅项目?)

Xmpp 从ejabberd模块访问muc名册(迪斯科舞厅项目?),xmpp,ejabberd,multiuserchat,Xmpp,Ejabberd,Multiuserchat,我正在构建一个ejabberd模块,将消息的副本发送到外部RESTful API。一切正常,对该API的请求正在发送发件人、收件人和消息正文的POST参数 我正在为此触发user_send_数据包和user_receive_数据包挂钩,我可以从数据包中提取参数(发送方、接收方、正文): Sender = xml:get_tag_attr_s("from", Packet), Recipient = xml:get_tag_attr_s("to", Packet), Body = xml:get_

我正在构建一个ejabberd模块,将消息的副本发送到外部RESTful API。一切正常,对该API的请求正在发送发件人、收件人和消息正文的POST参数

我正在为此触发user_send_数据包和user_receive_数据包挂钩,我可以从数据包中提取参数(发送方、接收方、正文):

Sender = xml:get_tag_attr_s("from", Packet),
Recipient = xml:get_tag_attr_s("to", Packet),
Body = xml:get_path_s(Packet, [{elem, "body"}, cdata])
对于群组聊天(MUC),我也想在参数中发送MUC花名册(参与者),但我不知道如何访问它们

有这方面的活动吗?有人能给我指一些文件吗


提前谢谢

似乎您希望获得特定房间的MUC参与者

您需要查看mod_muc.erl和mod_muc_room.erl。 我不确定您使用的是哪个版本的ejabberd,所以我将根据最新的ejabberd进行解释

通过呼叫获得房间的pid后

mnesia:dirty_read(muc_online_room, {Room, Host})
你可以打电话

gen_fsm:sync_send_all_state_event(Pid, {get_disco_item, From, Lang}, 100)
或者使用类似的代码。用户列表在回复中

如果您不喜欢回复格式,您可能需要将自定义
处理同步事件
添加到mod\u muc\u room.erl