2016-08-29 52 views
0

我正在開發使用XMPPFramework和Openfire Server的聊天應用程序。當我(usn2)向usn1發送消息時,會在ofMessageArchieve中使用conversationID創建一條消息。但是在註銷並重新登錄後,聊天時,新對話已創建(請參見下圖),但我想將此消息添加到現有對話中。我怎樣才能做到這一點?雖然我改變的Openfire作爲@Shoaib艾哈邁德貢達爾建議註銷後Openfire對話ID已更改

let msg = XMPPMessage(type: "chat", to: XMPPJID.jidWithString(getJIDFromName(stateID))) 
msg.addBody(message) 
msg.addAttributeWithName("id", stringValue: stream.generateUUID()) 
stream.sendElement(msg) 

enter image description here

代碼發送消息。它仍然發生 enter image description here

+0

你可以在Openfire中應用這些修改:https://stackoverflow.com/questions/39163681/retrieve-history-chat-openfire-xmpp-framework#comment65742736_39163681然後檢查你是否仍然遇到這個問題? –

+0

@ShoaibAhmadGondal我改變了,但它可能不會影響 – maphongba008

回答

0

MessageId和ConversationId是不一樣的。 MessageId爲您發送的每個消息生成,但ConversationId基於用戶&會話(可能)生成。要保持相同,您必須修改消息歸檔插件或開發新的插件。

+0

是的,我知道MessageId和ConversationId是不同的。 1對話有很多消息。你可能會誤解我的問題嗎?例如:我是user1,與user2聊天,例如,會話將以conversationID = 1創建。但1天后,當user1和user2再次聊天時,已創建新對話(conversationID = 2)。我希望他們繼續在對話中聊天1。我想知道如何做到這一點? – maphongba008

+0

我得到了你的問題,所以我提到,也許conversationId是基於會話生成的(每次你登錄時創建一個新的sessoin),如果是這樣你必須定製它。 –

+0

我解決了這個問題:D。你可以在這裏查看:http://stackoverflow.com/questions/39163681/retrieve-history-chat-openfire-xmpp-framework/39236173#39236173 – maphongba008