【发布时间】:2016-02-05 14:02:59
【问题描述】:
我为 Ejabberd 编写了一个外部组件,但在尝试代表用户发送出席信息节时,我收到 400 错误。
组件的名称是 bot.domain.com,Ejabberd 中的主机名是 domain.com,我已将组件的“check_from”标志设置为 false。
下面是我试图代表用户从组件发送的出席信息节的示例:
<presence from="user@domain.com">
<status>Test status</status>
<show>dnd</show>
</presence>
这是 Ejabberd 返回的错误消息:
<presence type="error" to="user@domain.com">
<status>Test status</status>
<show>dnd</show>
<error code="400" type="modify">
<bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</presence>
如果我在要发送的包中添加 to="user2@domain.com",则目标用户实际上会收到包。
如果我添加到 =“domain.com”,我不会再收到 400 错误,但不会向用户名册中的任何人广播存在。
实际的问题似乎是 Ejabberd 没有向用户名册中的每个人广播出席信息包。
知道我可能遗漏了什么,或者为什么在未指定“to”字段时出现 400 错误?
【问题讨论】: