为啥没有“to”属性时存在节被拒绝
Posted
技术标签:
【中文标题】为啥没有“to”属性时存在节被拒绝【英文标题】:Why presence stanza is rejected when there is no "to" attribute为什么没有“to”属性时存在节被拒绝 【发布时间】:2012-11-26 08:45:19 【问题描述】:至于XMPP documentation (Example 10)这种节应该是有效的:
<presence from="support@im.server.com" />
但是 ejabberd 回复 400 响应。这里的原因是缺少“to”字段。我想知道为什么会这样。 Based on a XML schema of a XEP-0114 analysis 我猜是因为 support@im.server.com 是一个外部组件。
有人可以确认我是对还是错,或者提出如何克服这种情况的建议?
XMPP 服务器:ejabberd 2.1.5。
【问题讨论】:
你有没有尝试向 ejabbered 开发人员询问这个问题? 【参考方案1】:您提到的示例 10 向客户端发送用户存在并包含资源。所以这是服务器 => 客户端。
如果我理解你的正确,你将这个存在从你的组件发送到服务器(组件=>服务器)。如果没有地址,服务器无法将此状态路由到另一个实体。
【讨论】:
确实,我试图将节从组件发送到服务器,并期望服务器将其广播给我组件的所有订阅者。发生这种情况是 0114 的 xml 模式不允许的。至于 RFC6120 第 8.2.2 节 (tools.ietf.org/html/rfc6120#section-8.2.2) 没有“to”属性的存在节必须广播给“from”的所有订阅者。因此,我希望我的节会被广播。但是,这仅适用于客户端-服务器通信,而不适用于组件-服务器。虽然组件 jid (support@im.server.com) 有订阅者。以上是关于为啥没有“to”属性时存在节被拒绝的主要内容,如果未能解决你的问题,请参考以下文章