XMPP中服务器可否为客户端定义属性 实现类似XEP-0115的服务端管控能力
XMPP服务端分配只读用户属性可行性及方案
完全支持,不需要基于XEP-0115做非标准修改,现有官方扩展就能完全匹配你的需求:
- 首选适配方案是使用
XEP-0054: vcard-temp或更新的XEP-0292: vCard4 Over XMPP。你可以在服务端配置权限,禁止普通用户修改vCard中的指定扩展字段,将用户组标签直接写入该字段即可。所有客户端都可以通过标准的vCard查询接口拉取任意用户的这一属性,全程不需要客户端主动上报内容。 - 轻量化场景可以用
XEP-0163: Personal Eventing Protocol(PEP)实现。服务端为每个用户创建一个仅服务端拥有编辑权限的公开PEP节点,将用户组标签作为节点内容存储。客户端可以主动查询该节点内容,也可以订阅节点实现属性更新自动推送,由于节点编辑权限由服务端完全控制,普通用户无法自行修改标签内容。
不推荐基于XEP-0115改造的方案:XEP-0115的设计定位就是客户端主动上报自身终端/版本能力,标准协议没有定义服务端覆写能力字段的逻辑,硬改会和原生的实体能力探测逻辑冲突,容易引发不同客户端的兼容性问题。
内容的提问来源于stack exchange,提问作者The_Fallen
相关产品推荐
相关产品推荐

