为啥没有“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”属性时存在节被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

程序员面试被拒,问清原因后愣了,网友:这么拒绝人就过分了吧

iOS 5.1.2审核被拒

iOS 审核被拒问题总结

JSPatch被拒之完美解决方案

JSPatch被拒之完美解决方案

APP被苹果App Store拒绝的79个原因转