【问题标题】:Openfire ConversationID has changed after logout注销后 Openfire ConversationID 已更改
【发布时间】:2017-01-05 04:11:48
【问题描述】:

我正在开发一个使用 XMPPFramework 和 Openfire Server 的聊天应用程序。当我(usn2)向 usn1 发送消息时,已在 ofMessageArchieve 中创建了一条带有会话 ID 的消息。但是注销并再次登录后,聊天时,新对话已创建(见下图),但我想将此消息添加到现有对话中。我该怎么做?

发送消息的代码:

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

虽然我按照@Shoaib Ahmad Gondal 的建议更改了 Openfire。它仍然发生

【问题讨论】:

标签: xmpp openfire xmppframework


【解决方案1】:

MessageId 和 ConversationId 不相同。 MessageId 为您发送的每条消息生成,但 ConversationId 根据用户和会话(可能)生成。要保持它们相同,您必须修改消息存档插件或开发新的。

【讨论】:

  • 是的,我知道 MessageId 和 ConversationId 是不同的。 1 个对话有很多消息。可能你误解了我的问题。例如:我是 user1,与 user2 聊天,例如将创建 1 个对话,其中 conversationID=1。但是 1 天后,当 user1 和 user2 再次聊天时,已经创建了一个新对话(conversationID=2)。我希望他们继续在对话中聊天1。我想知道怎么做?
  • 我遇到了你的问题,所以我提到过可能会根据会话生成会话 ID(每次登录都会创建一个新的会话),如果是这样,你必须自定义它。
  • 我已经解决了这个问题:D。你可以在这里查看:stackoverflow.com/questions/39163681/…
  • 这也是我的回答,但与“如何获取聊天记录”有关
猜你喜欢
  • 1970-01-01
  • 2021-07-18
  • 2021-01-28
  • 2014-04-24
  • 2016-01-29
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多