作者:向日葵渴望 | 来源:互联网 | 2023-06-07 09:29
简介RosterSet名录设置操作包括创建、更新和删除联系人条目,语法上是一个从客户端发送到服务器的IQ节点,节点类型为set,必须且只包含一个item节点,此item节点不应该包
简介
Roster Set
名录设置操作包括创建、更新和删除联系人条目,语法上是一个从客户端发送到服务器的 IQ 节点,节点类型为 set,必须且只包含一个 item 节点,此 item 节点不应该包含 subscription 属性,除非 subscription 的值为 remove。
Roster Push
名录推送与名录设置类似,当创建、更新或删除联系人条目时由服务器发送到客户端。收到名录推送的时候应该发送给服务器一个类型为 result 或 error 的回复。
加载 Roster
// 请求 roster
// 请求成功
-
Friends
-
-
// roster 为空
// roster 不存在
添加联系人
// 请求添加
-
Servants
// 添加成功
// 成功后会收到 Roster Push
-
Servants
-
Servants
// 建议在收到 Roster Push 时作相应回复
// 添加失败时,服务器一定会返回节错误,类型有很多
更新联系人
更新操作与添加操作完全一样。
删除联系人
// 请求删除
-
// 删除成功
// 成功后会收到 Roster Push
// 建议在收到 Roster Push 时作相应回复
// 删除失败时,服务器一定会返回节错误,类型不清楚
删除联系人条目时服务器还会生成一些订阅相关的 presence 节点:
- 如果 subscribe,则发送 unsubscribe,用来取消订阅用户;
- 如果 subscribed,则发送 ubsubscribed,用来取消用户对自己的订阅;
- 如果 both,则发送两者。
XMPP Roster,,
XMPP Roster