Ejabberd xml记录类型定义

时间:2015-10-11 12:15:34

标签: erlang ejabberd

数据包原子存储xmlelement记录,如下所示打印。定义xmlelement的记录的位置。无法在ejabberd源代码树中找到。

I(<0.12602.0>:my_module:47) : in_filter_packet: {xmlelement,"iq",
                                                 [{"type","get"},
                                                  {"id","purpled56e4316"}],
                                                 [{xmlelement,"ping",
                                                   [{"xmlns","urn:xmpp:ping"}],
                                                   []}]} 


I(<0.13000.0>:my_module:47) : in_filter_packet: {xmlelement,"message",
                                                 [{"type","chat"},
                                                  {"id","purple4e6f6c61"},
                                                  {"to","test2@ubuntu"}],
                                                 [{xmlelement,"active",
                                                   [{"xmlns",
                                                     "http://jabber.org/protocol/chatstates"}],
                                                   []}]} 

1 个答案:

答案 0 :(得分:0)

在旧版本的ejabberd(2.x)中使用了

xmlelement结构。我相信您正在尝试使用尚未针对最新版本的ejabberd更新的模块或示例代码。 ejabberd现在使用xmlel条记录。

作为参考,在ejabberd 2.x中,xmlelement不是正确定义的记录,而只是形式的元组:{xmlelement, Name, Attrs, Childrens}。您不需要引用任何记录来处理它们,您只需处理元组即可。记录是元组之上的糖语法。