Strophe XMPP仅接收具有完整JID的节

时间:2014-11-19 23:31:59

标签: xmpp strophe

创建Web XMPP客户端以连接到XMPP ejabberd服务器,我遇到以下问题:

  • 我的客户端可以正常发送消息。
  • 问题是当我尝试接收消息时。我只接收针对我的完整JID的节,包括我正在使用的资源,因此我不会收到指向我的用户@域的节,但我收到发送给我的用户@ domain / resource的节。

这不是一个理想的情况,因为我需要与其他客户进行通信才能使用裸JID。

我对Strophe的经验不多,所以也许有经验丰富的人可以说明我做错了什么。提前谢谢!

1 个答案:

答案 0 :(得分:2)

您是否检查过您的xmpp服务器是否提供了将消息路由到所有资源的设置?

OpenFire提供了一个名为route.all-resources的属性,它将消息转发给一个人的所有资源。

此外,您可能希望调整资源的优先级,因为只有具有最高优先级的资源才会向其发送消息(如果消息未指定资源)。

以下是使用Strophe.js

将资源优先级设置为10的示例

connection.send($pres().c("priority").t("10"));

This article描述了预期的行为,相关问题中的this answer也可以帮助您了解正在发生的事情。