1

我们有一个“超级用户”帐户,用于向选定的 JID 发送消息。假设我们已经选择了我们想要向其发送消息的那些,并且我们得到了一个庞大的用户 JID 数组(此时为 20k)。我们在后台运行了一个守护进程,一次向每个用户发送一条消息,在发送 2000 条消息后停止一分钟(限制为 2500 条/分钟)。我们使用 xmpp4r 作为处理发送消息的客户端。每个用户都有相同的@xmpp.address。<body>在每条消息中都是相同的。

我们的 tigase 日志(因为这就是我们正在使用的)显示消息确实确实到达了 jabber 服务器并被发送给适当的用户,一次一个。

我们遇到的问题是,尽管一切看起来都很好,但实际上只有一部分用户得到了消息。(例如,在某一时刻,考虑到发送了 100 条第一条消息 - 1..20 和 91..100 已送达,中间的 70 条根本没有送达),我们同时改进了几件事,但这仍然可能是线索。

我们尝试创建一个包含 10000 个重复 JIDS 的数组(几个用户的 jid 重复了数千次),并且每条消息都被传递(并且以正确的顺序)。

我们已经花了几天时间尝试不同的场景,并且开始想不出可能出了什么问题。

知道我们可能错过了什么吗?

4

1 回答 1

0

我是 Tigase 团队的成员。首先,我建议使用我们的在线论坛,因为这是我们通常回答问题的地方。我们可能看不到此处发布的问题。

反正...

您的帖子中没有包含一些细节。

  1. 你连接什么以及如何连接?通过标准 XMPP 连接、通过 Bosh 还是其他?
  2. “重复的 JID”是什么意思?你是如何复制 JID 的?
  3. 测试期间发送消息的所有用户都在线吗?
  4. 如果您可以在 Tigase 日志中看到消息,您还应该看到它发生了什么。它是否已提交到网络套接字以交付给客户端?
  5. 你用的是什么硬件?服务器是否有可能超载并简单地丢弃了一些消息?如果您谈论 100 条消息而其中 70 条未送达,这似乎不太可能。
  6. 您如何真正知道消息未传递,并且您确定客户端/用户当时已连接?
于 2014-07-11T21:02:49.090 回答