2015-04-08 95 views
2

我正在研究支持通過QuickBlox iOS SDK進行私人聊天的應用程序。一切工作正常,除了這個場景,假設我們有兩個用戶UserA和UserB。如果他們成功登錄到QBChat,他們都可以接收郵件。現在UserB從應用程序轉到了後臺(我已經明確地從聊天中註銷了他)。在這裏,UserA發送一條消息:「你不在線!是的,你永遠不會收到這條消息,因爲QuickBlox中可能存在一個錯誤。」再次,UserB回到應用程序(並且我會讓他在QBChat中再次登錄),但奇怪的是,他不會收到該消息,但是它在QuickBlox頁面上的應用程序儀表板上。同樣,它還將該消息顯示爲QBChatDialog對象的lastMessageText。如果UserA發送像A,B,C,D,E這樣的消息,現在真正的恐怖場景將會出現,UserB又回到了後臺。當他回到應用程序時,UserB只會收到B,C,D, E.而不是隊列中的第一條消息。是的,它也在應用程序儀表板上,並且還針對QBChatDialog對象進行了更新。使用QuickBlox接收離線消息時的問題

怎麼了?

回答

0

這仍然是一個問題,但我可以通過設置屬性來解決這個問題。

設置,[QBSettings useTLSForChat:YES];一旦您請求登錄到QBChat

然而,這個問題的主要原因是當用戶A將要離線並且同時用戶B將發送消息M1,M2,M3 ...則A將僅獲得M2和M3 ...但是如果用戶B在該用戶A從QBChat註銷幾秒之後將向其發送消息,則A將獲得全部三條消息。

更新:

從Quickblox的iOS SDK 2.3,他們做了YES(默認)爲[QBSettings useTLSForChat:YES];所以我們並不需要明確設置這個。

1

您需要添加自訂參數

QBChatMessage *message = [QBChatMessage message]; 
... 
NSMutableDictionary *params = [NSMutableDictionary dictionary]; 
params[@"save_to_history"] = @YES; 
[message setCustomParameters:params]; 

http://quickblox.com/developers/SimpleSample-chat_users-ios#Chat_history

+0

我建議您將Quickblox SDK更新到最新版本http://quickblox.com/developers/IOS#Download_iOS_SDK – SevenDays

+0

我的聊天示例中沒有這個錯誤,它按預期工作。你能否給我你的樣品項目? – SevenDays

+0

我使用這個項目來測試QBChat http://quickblox.com/developers/SimpleSample-chat_users-ios,我之前沒有遇到過這個問題 – SevenDays