2017-06-30 55 views
0

當收件人突然由於某些網絡問題而從INTERNET斷開連接時,消息丟失。在這種情況下,我想停止消息丟失。當收件人在Ejabberd突然斷開連接時丟失消息

示例:用戶A和B在線聊天。 A發送消息給B.然後突然用戶B丟失了INTERNET連接,同時用戶A仍然向B發送消息。服務器假設B仍然是在線的,因爲不知道在B存在網絡問題。

I我正在使用Ejabberd 16.08。請建議我如何解決此問題。

回答

0

假設一個標準的c2s連接,我會建議使用Stream Management,它受ejabberd支持,但也需要客戶端支持。這不會阻止「丟失」的消息,但當用戶B不能幹淨地斷開連接時,它將允許更快的檢測和通知。

另一種替代方法是使用XMPP over BOSH,根據您的確切平臺,其中有許多客戶端庫可用。 BOSH與Stream Management的行爲非常類似,並且適用相同的注意事項。

由於互聯網通信的性質,服務器認爲要發送消息,但客戶端還沒有收到它,總會有一些情況。在這種情況下,它可以幫助使用Message Archive Management在重新連接時同步用戶B的客戶端。