我們有一個XMPP服務器(OpenFire)和基於Java Smack XMPP堆棧的自定義客戶端。我們正在使用手動訂閱接受方式,因此客戶必須交換訂閱和訂閱狀態。XMPP:在原始請求者處於離線狀態(訂閱狀態)時建立雙方訂閱的RFC
如RFC所述,訂閱狀態(「我想訂閱您的狀態」)由服務器存儲,並且每次用戶登錄時都會發生怨恨,直到他回答爲止。不幸的是,對於答案(「訂閱」或「取消訂閱」),似乎並非如此。如果原始請求者在其他用戶應答訂閱請求時脫機,則他不會收到答案。我在XMPP RFC中找不到關於服務器預期行爲的任何內容。
我該怎麼辦?有什麼我可能錯過了?還是有一個標準的方法來實現這個用例?
This OpenFire forum post表明,我遇到的行爲是
好的,一種可能的解決方案(以及我使用的方案)是通過自動建立另一種方式來檢查名單上的連接並「修復」當時的所有單向訂閱。 – 2011-01-05 11:29:46
你的解決方案幫了我很多。謝謝。 – 2011-07-14 09:08:10