2012-03-28 12 views
1

Wi-Fi以外のiOSデバイスと通信するiPhoneアプリケーションを開発しています。私のアプリケーションはVOIPを使用しています。ストリームを設定し、を私のplistに追加しました。iPhone VOIP in background

問題は、アプリケーションが外部デバイスから何らかの情報を受信して​​いないことです。バックグラウンドで入力したときです。

誰かが私に何か不足していると教えてもらえますか?

+0

これまでに試したことについてもう少し詳細を述べる必要があると思います。たぶん、いくつかのコードを投稿しますか? – onnoweb

+2

IIRCでは、IOSアプリケーションがバックグラウンドに移行するとネットワーク通信が無効になります。 – KevinDTimm

+0

私はさらに説明します:私のアプリはWIFI経由で外部デバイスと通信しています。私のアプリがバックグラウンドに移行すると、OSは外部デバイスからのデータをキャッシュし、アプリケーションがフォアグラウンドに戻るとデータを配信します。問題は、バックグラウンドに入ったデータとフォアグラウンドに入ったデータを区別したいということです。問題は、アプリケーションがバックグラウンドにあるときにデータを処理するためのバックグラウンドタスクを実行するか、フォアグラウンドでデータ処理を維持する必要があるかどうかです。 – rokridi

答えて

0

私はあなたのステートメントに基づいてplistの必要なバックグラウンドモードを正しく設定していると仮定しています。配列にはキーと必要な値が設定されていることを確認してください。また、 "アプリケーションはバックグラウンドで実行されません"キーをplistに追加し、NOに設定しますか?

+0

これは私がコードを入力する前に行った最初のことです – rokridi

1

実際の問題についてはわかりません。

次のことを確認してください iOSバックグラウンドVoIPアプリケーションごとに、TCP接続のみがバックグラウンドで通信可能な&になります。

あなた/あなたのスタックがVOIP用にUDPソケットを使用している場合は、それをTCPに置き換えてください。

UDPポートの場合、アプリケーションとバインドされたままですが、バックグラウンドモードではアクティブではありません&は、フォアグラウンドモードでアクティブになります。

+0

私はサーバーと通信するためにTCP接続を確立しています(iOS 5の下でアプリケーションを開発しています)。そして私はちょうどバックグラウンドタスクを実行し、アプリケーションはバックグラウンドでデータを受信し続けますが、これは最大10分間しか持続しません。私は正しい方法でいるのだろうかと思う。 – rokridi

+0

この間(最大10分)パケットを送信していますか?受信を停止したときと最後に送信したときのパケットの間に特に時間差がありますか?また、フォアグラウンドに来た後にあなたがrecvしたpktがcatch pktかretransmittedかどうかを区別します。 32秒間に再送されたSIP標準のpktによるが、TCPでは2分間pktを再送する。 –

+0

この間、私はパケットを送受信しています – rokridi