百度首页 | 百度空间
 
文章列表
 
您正在查看 "Xep" 分类下的文章

2008-06-06 22:52
IM中,通常有需要保存一些用户的私有数据到服务器,比如用户的本地配置信息。此功能可以通过 XEP-0049: Private XML Storage实现。

如:

Example 1. 客户端保存私有信息
CLIENT:
<iq type="set" id="1001">
<query xmlns="jabber:iq:private">
<exodus xmlns="exodus:prefs">
<defaultnick>Hamlet</defaultnick>
</exodus>
</query>
</iq>

SERVER:
<iq type="result"
from="hamlet@shakespeare.lit/denmark"
to="hamlet@shakespeare.lit/denmark"
id="1001"/>

Example 2. 客户端获取私有信息
CLIENT:
<iq type="get" id="1002">
<query xmlns="jabber:iq:private">
<exodus xmlns="exodus:prefs"/>
</query>
</iq>

SERVER:
<iq type="result"
from="hamlet@shakespeare.lit/denmark"
to="hamlet@shakespeare.lit/denmark"
id="1002">
<query xmlns="jabber:iq:private">
<exodus xmlns="exodus:prefs">
<defaultnick>Hamlet</defaultnick>
</exodus>
</query>
</iq>

用户可以保存多个不同的信息到服务器,多个信息可以设置不同的 namespace, 类似 key:value 中key的作用。

Openfire 支持XEP-0049, 其中的表结构为:
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| username | varchar(64) | NO   | PRI |         |       |
| name      | varchar(100) | NO   | PRI |         |       |
| namespace | varchar(200) | NO   | PRI |         |       |
| value     | text         | NO   |     |         |       |
+-----------+--------------+------+-----+---------+-------+


根据表结构可以看到,实际服务器实现时候把name和namespace加起来作为区分不同key标志。name就是example1中的exodus,namespace为exodus:prefs
类别:Xep | 评论(3) | 浏览()
 
     
 
 
文章分类
 
 
Jep(11)
 
Xmpp(14)
 
 
 
 
 
 
 
 
 
 
 
 
 
Xep(1)
 
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   
 

我后续文章会比较
 
 
 
 
     


©2008 Baidu