2011-12-29 3 views
3

https://github.com/robbiehanson/XMPPFramework/wiki목표 - C XMPPFramework 오프라인 큐

내 응용 프로그램을 전송하고 응용 프로그램과의 iChat을 실행하는 다른 휴대폰간에 메시지를 수신 잘 알고 사람을 찾아 희망. 난 랙 공간에 설치된 eJabberd를 사용하고 있습니다.

내 전화기에서 메시지를 오프라인 상태의 전화기로 보내면 응용 프로그램에서 온라인 상태가되었을 때 메시지가 수신되지 않으며 iChat에서도 메시지가 대기열에 들어 가지 않습니다. .

그러나 iChat을 통해 메시지를 보내고 내 애플리케이션에 내 전화로 로그인하면 메시지가 제대로 전달됩니다.

어떤 이유로 든 위의 XMPPFramework를 사용하여 메시지를 보내는 방식이 서버의 대기열 기능을 트리거하지 않는 것처럼 보입니다. 나는 불행하게도, 같은 결과를 (다른 사용자 이름으로) 정확히 다음과 같습니다 메시지

message from='[email protected]/orchard' to='[email protected]'> 
    <body> 
    O blessed, blessed night! I am afeard. 
    Being in night, all this is but a dream, 
    Too flattering-sweet to be substantial. 
    </body> 
</message> 

을 보내 사양 here을 따랐습니다. 나는 iChat의 나가는 XML이 어떻게 보이는지 보려고 노력했지만 아무 소용이 없다. 앞에서이 문제에 부딪혔던 누군가가 있기를 바랍니다.

+0

오프라인 메시징은 XMPP 서버의 책임입니다. 서버 로그는 무엇을 말합니까? – Eric

+0

답장을 보내 주셔서 감사합니다. Eric. 로그에 다시 액세스 할 때 다시이 작업을 수행 할 것입니다. – marklar

+0

@marklar 어디서 났니? 라이브러리를 사용할 때도 오프라인 메시지가 나타나지 않습니다. – Krishnabhadra

답변

3

오프라인 메시지는 서버에서 발생하는 책임입니다. 오프라인 메시지를 처리하는 방법은 XEP-0160: Best Practices for Handling Offline Messages에 설명되어 있습니다.

클라이언트 측에서는 "정상"또는 "채팅"유형의 메시지 스탠자를 보내야합니다.

또한 eJabberd에서 오프라인 메시지 저장소가 활성화되어 있는지 확인해야합니다.

+0

안녕하세요, ejabberD에서 Tigase로 전환 중입니다. 앱의 채팅 구성 요소를 구축 중입니다. xmpp 구성 요소를 다시 시작하면이 스레드로 결과가 돌아옵니다. – marklar

+0

@eric 우리가 대기열에 메시지를 가져 오는 것보다 오프라인 모드에있을 때? - (void) xmppStream : (XMPPStream *) 보낸 사람 didReceiveMessage : (XMPPMessage *) 메시지 응용 프로그램이 종료 될 때이 메서드는 호출하지 않습니다. rght? – Raju