2016-08-29 24 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