这几天公司软件要增加黑名单的功能,因为公司产品的IM功能模块用的是开源的Gloox库,Gloox是实现了XMPP协议的c++客户端库,所以我觉得这个功能应该是很简单的,结果做起来发现XMPP的花名册管理(XMPP协议里面花名册管理部分相当于一般IM的好友管理)还挺麻烦的,消息绕来绕去的,我头都转晕了,再加上公司的前辈也没留下文档,没办法只有好好看看XMPP协议文档对花名册管理部分的描述了。
XMPP协议文档编号是RFC2193,里面的第7部分就是花名册管理(RostorManage)的描述,由于是英文文档,所以我看的速度很慢,然后边看边写了个Demo来印证,当然了Demo也是基于Gloox库的,服务端用的Openfire Server。花了一天的功夫终于有了个初步的了解,为了加深理解,也方便自己以后查阅,我决定把英文文档中关于RostorManage的部分翻译过来,然后加上一些自己的理解,下面就进入正题了。
在XMPP里面,一个人的联系人列表被称作一张花名册,其中包含一定数量联系人的名片,每张名片由JID唯一标识(JID通常是contact@domain的格式)。每个用户的花名册都被用户服务端存储在该用户的专属空间,所以该用户下的任意资源都可以访问花名册信息。
语法和语义
花名册通过包含一个<query/>子节点元素的IQ节点来管理花名册,并且这个子节点名为’jabber:iq:roster’域,这个<query/元素可以包含一个或者多个<item/>子元素,
花名册管理之基本概念和操作
最新推荐文章于 2022-04-03 16:21:13 发布