2011-12-29 5 views
3

https://github.com/robbiehanson/XMPPFramework/wikiのObjective-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

私たちがオフラインモードのときにメッセージをキューに入れたときより - (void)xmppStream:(XMPPStream *)送信者didReceiveMessage:(XMPPMessage *)メッセージ このメソッドは、このメソッドは、呼び出していないrghtよりも終了しますか? – Raju

関連する問題