2016-08-29 3 views
0

XMPPFramework 및 Openfire Server를 사용하는 채팅 앱을 개발하고 있습니다. (usn2)가 usn1에게 메시지를 보내면 ofMessageArchieve에 conversationID와 함께 메시지가 생성되었습니다. 그러나 로그 아웃하고 다시 로그인 한 후 채팅 할 때 새 대화가 생성되었지만 (아래 이미지 참조)이 대화를 기존 대화에 추가하고 싶습니다. 어떻게해야합니까? @Shoaib 아마드 Gondal 제안으로 내가의 Openfire를 변경하더라도로그 아웃 후 Openfire ConversationID가 변경되었습니다.

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가 세션을 기반으로 생성되었다는 것을 언급했습니다. (매번 새로운 세션을 생성하기 위해 로그인 할 때마다), 그래서 사용자 정의해야합니다. –

+0

나는 이것을 풀었다. D. 여기에서 확인할 수 있습니다. http://stackoverflow.com/questions/39163681/retrieve-history-chat-openfire-xmpp-framework/39236173#39236173 – maphongba008

관련 문제