You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从ejabberd中提取数据?需获取chatcontent字段值

从ejabberd消息对象中提取chatcontent字段

给定的ejabberd消息是Erlang元组结构,要提取其中的chatcontent字段,可通过以下Erlang代码实现:

  1. 先定位消息中的扩展字段列表(元组的第10个元素):
% 假设Message是你获取到的消息对象
Extensions = element(10, Message),
  1. 使用lists:keyfind/3从扩展列表中筛选出chatcontent项:
{chatcontent, _, _, _, _, _, Content, _, _, MsgType} = lists:keyfind(chatcontent, 1, Extensions),

执行后,Content变量会得到值<<"testmeme">>,MsgType会得到<<"text">>,你可根据需求提取chatcontent元组中的其他对应值。

补充说明

ejabberd的消息对象本质是Erlang元组,element/2用于获取元组指定位置的元素;lists:keyfind/3是Erlang标准库函数,专门用于在列表中查找以指定原子为首个元素的元组,适配这类扩展字段的提取场景。

内容的提问来源于stack exchange,提问作者kumaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:55:22