Ejabber 结构和花名册

rod*_*odi 1 erlang xmpp ejabberd

我是 ejabberd 的新手,但我注意到的第一件事是完全没有文档和代码注释。

我有很多疑惑,但主要是:里面的记录jid user和luser,server和lserver,...和...有什么区别?

-record(jid, {user, server, resource,
      luser, lserver, lresource}).
Run Code Online (Sandbox Code Playgroud)

记录智商有什么用?

-record(iq, {id = "",
         type,
         xmlns = "",
         lang = "",
         sub_el}).
Run Code Online (Sandbox Code Playgroud)

ejabber 中的订阅是什么?两个用户之间的关系?

花名册内的 jid 是什么?

我知道这些问题也可能很愚蠢,但我真的不知道不问怎么理解,谢谢

小智 6

user 和 luser 和有什么不一样?

luser、lserver 和lresource 是经过合适的stringprep 配置文件处理后的jid 的对应部分。请参阅http://tools.ietf.org/html/rfc3920#section-3。简而言之,在 ejabberd 中,您很可能总是使用处理过的版本,只有在将 JID 序列化回线路时才使用原始版本。

记录智商有什么用?

与每次从底层 xml 中检索该信息相比,它更容易匹配 IQ 命名空间、id 或类型 (get|set|error)。

ejabber 中的订阅是什么?两个用户之间的关系?

基本上,是的。从用户 A 到用户 B 的订阅意味着 A 对 B 的存在感兴趣。但是订阅可以处于不同的状态(因为其他用户必须接受它等)。请参阅http://xmpp.org/rfcs/rfc3921.html#sub

花名册内的 jid 是什么?

抱歉,没听懂你的意思,你想知道什么?