0

ユーザーの 1 人が「オフライン」になると、チャットでメッセージを配信する際に問題が発生します。1 対 1 のチャットが初期化され、2 人のユーザーがチャットしている場合、メッセージが配信され、すべてがうまく機能しますが、ユーザーの 1 人のアプリがバックグラウンドになると、もう 1 人はメッセージを保持します。メッセージが送信され、履歴とキャッシュに保存されているように見えますが (ログに記録します)、他のユーザーがオンラインに戻って履歴を取得すると、これらのメッセージは表示されません。

ログでは、アプリの再起動後に遅延が発生していることがわかります。

2013-03-13 01:14:42.983 MyApp[2314:1103]
QBChat/xmppStreamDidReceiveMessage: 
<message   xmlns="jabber:client" id="0" type="chat" from="XXXXX-XXXX@chat.quickblox.com"
to="XXXXXX-XXXX@chat.quickblox.com">
<body>I try again</body>
<delay xmlns="urn:xmpp:delay" from="chat.quickblox.com" stamp="2013-03-13T07:58:14.455+0000">

メッセージング プロセス全体は、SimpleSample チャットのコードを使用して構築されています (また、プッシュ通知はまだ使用していません)。

この問題について何かアドバイスをいただけますか?

ありがとうございました。

更新: アプリを再インストールした後、ユーザーとのメッセージ履歴は取得されません。つまり、私が話していた履歴はキャッシュに保存されていたと思います。サーバーから履歴を取得する際に問題があるようです。「ChatDidReceiveMessage」で「message.delayed = 1」を試しましたが、役に立ちませんでした。

4

1 に答える 1

1

バックグラウンドに移動するときはチャットからログアウトし、フォアグラウンドに移動するときは再度ログインする必要があります。

この場合、メッセージは正常に受信されます

于 2013-03-14T11:50:11.133 に答える