2014-07-11 30 views
1

我們有一個'超級用戶'帳戶,用於向選定的JID發送消息。比方說,我們選擇了我們想要發送消息的人,並且我們爲自己提供了大量的用戶JID(此時爲20k)。我們有一個deamon在後臺運行,每次發送一條消息給每個用戶,發送2000條消息(2500 /分鐘限制)後停止一分鐘。我們使用xmpp4r作爲處理髮送消息的客戶端。每個用戶都有相同的@ xmpp.address。 <body>在每條消息中都是相同的。XMPP,向成千上萬的jabberID發送一條消息 - jabber最終只發送給選定的JID組中的一個隨機部分

我們的tigase日誌(因爲這就是我們正在使用的),表明這些消息實際上已經打到了jabber服務器,並一次一個發送給適當的用戶。

我們正在經歷的問題是,儘管一切看起來都很好,但只有一部分用戶確實收到了這條消息。 (例如,在某一點上,考慮到100個第一個發送的消息--1..20和91..100交付,中間70根本沒有交付),我們在此期間改進了幾件事情,但這仍然可能是線索。

我們嘗試創建一個10000重複的JIDS(幾​​個用戶的jids被重複數千次)的數組,並且每個消息都被傳遞(並以正確的順序)。

我們已經花了幾天時間嘗試不同的場景,並開始用盡可能出錯的想法。

知道我們可能錯過了什麼嗎?

回答

0

我是Tigase團隊。首先,我建議使用我們的在線論壇,因爲這是我們通常回答問題的地方。我們可能看不到發佈在這裏的問題。

無論如何...

有一些細節不包括在您的文章。

  1. 你連接什麼,怎麼連接?通過標準的XMPP連接,通過波什,別的東西?
  2. 「重複的JID」是什麼意思?你是如何複製JID的?
  3. 在測試過程中是否有所有用戶在線發送消息?
  4. 如果您可以在Tigase日誌中看到消息,則還應該看看會發生什麼。是否提交給網絡套接字以傳遞給客戶端?
  5. 你使用了什麼樣的硬件?有沒有可能服務器超負荷,並簡單地丟棄一些消息?似乎不太可能,如果你談論100條消息,其中70條沒有交付。
  6. 您如何確實知道郵件未送達,您確定客戶端/用戶當時已連接?