是否可以在 ejabberd 中自定义 presence <show/> 元素?
Is it possible to customise presence <show/> element in ejabberd?
RFC3921 第 2.2.2.1 节定义可选 <show/>
元素必须是以下之一:
away -- The entity or resource is temporarily away.
chat -- The entity or resource is actively interested in chatting.
dnd -- The entity or resource is busy (dnd = "Do Not Disturb").
xa -- The entity or resource is away for an extended period (xa = "eXtended Away").
我想自定义此可用状态列表,方法是删除 "chat" 并添加 XMPP 客户端可以从中 select 的其他状态。
在这条路上走得太远之前,我想从专家那里知道:
1) 可以在 ejabberd 中修改标准元素列表吗?如果可以,最好的方法是什么?
2) 是否可以在每个虚拟主机的基础上更改这些元素,因为每个组织都想要一组略有不同的状态(即可以看到彼此的存在)?
3) XMPP 客户端是否会接受对 ejabberd 中元素列表的任何更改,或者它们通常对标准元素进行硬编码?
4) 如果一个虚拟主机中的联系人有一个元素 selected 对另一个虚拟主机中的联系人不可用,但两个联系人已连接,会发生什么?
感谢您分享任何意见。
ejabberd 不关心那些显示值。但是,如果您随后进行更改,您的客户端将不再兼容 XMPP。
最好使用状态来传达您需要的特殊含义,并将这些状态值映射到标准 "show" 值之上。
如果您还需要使用状态,您可以随时添加自己的自定义扩展标签以传递客户所需的额外信息。
RFC3921 第 2.2.2.1 节定义可选 <show/>
元素必须是以下之一:
away -- The entity or resource is temporarily away.
chat -- The entity or resource is actively interested in chatting.
dnd -- The entity or resource is busy (dnd = "Do Not Disturb").
xa -- The entity or resource is away for an extended period (xa = "eXtended Away").
我想自定义此可用状态列表,方法是删除 "chat" 并添加 XMPP 客户端可以从中 select 的其他状态。
在这条路上走得太远之前,我想从专家那里知道:
1) 可以在 ejabberd 中修改标准元素列表吗?如果可以,最好的方法是什么?
2) 是否可以在每个虚拟主机的基础上更改这些元素,因为每个组织都想要一组略有不同的状态(即可以看到彼此的存在)?
3) XMPP 客户端是否会接受对 ejabberd 中元素列表的任何更改,或者它们通常对标准元素进行硬编码?
4) 如果一个虚拟主机中的联系人有一个元素 selected 对另一个虚拟主机中的联系人不可用,但两个联系人已连接,会发生什么?
感谢您分享任何意见。
ejabberd 不关心那些显示值。但是,如果您随后进行更改,您的客户端将不再兼容 XMPP。
最好使用状态来传达您需要的特殊含义,并将这些状态值映射到标准 "show" 值之上。
如果您还需要使用状态,您可以随时添加自己的自定义扩展标签以传递客户所需的额外信息。