gpt4 book ai didi

xmpp - 从 ejabberd 模块访问 muc 名册(disco_items?)

转载 作者:行者123 更新时间:2023-12-01 07:59:39 26 4
gpt4 key购买 nike

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

我为此触发了 user_send_packet 和 user_receive_packet Hook ,我可以从数据包中提取参数(发件人、收件人、正文):

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)

或使用类似的代码。用户列表在回复中。

如果你不喜欢回复格式,你可能想添加自定义 handle_sync_event 到 mod_muc_room.erl 。

关于xmpp - 从 ejabberd 模块访问 muc 名册(disco_items?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14119709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com