2009-09-24 9 views
6

iPhoneアプリケーションがあり、サーバーに変更が加えられるとすぐに更新する必要があります。どのようにして、サーバーがWebサービスを常にポーリングしているのではなく、iPhoneを「プッシュ」することができますか?WebサービスをiPhoneでポーリングするのを避けますか?

EDIT:リクエストすることなく、サーバーがJSONのアップデートを処理するとすぐに、iPhoneにJSONのアップデートを受信させます。

私はサーバーがこれがCometと呼ばれるWebサービスだと思うが、良いiPhoneの例はまだ見ていない。

+0

私は本当にあなたがこれを行う必要があるかどうかについて真剣に考えるだろう。リアルタイムでアップデートを受信して​​電話機の無線機を常にアクティブに保つためにサーバーとのオープンな接続を維持することは、狂気のようなパワーを吸います。 –

答えて

13

これは、あなたがどれほど冒険しているかによって異なります。ここには2つの選択肢があります:

  1. Apple's Push Notificationsあなたのアプリが動作していなくても機能します。
  2. サーバーとのTCP接続を自分で維持します。低レベルのNSStreamのジャグリングや、iPhoneが3GからWiFiに移行するケースを処理しようとしています。これはまた、かなり早くバッテリーを食べることができます。このパスを選択した場合は、socket streams programming guideが適しています。

更新:iStreamLight - Lightstreamer protocol implementation for iPhoneをご覧ください。それがあなたのComet Webサービスに合っていない場合は、おそらくソケット・ストリームを使用してTCP接続を維持している下位レベルに移動する必要があります。 JSONデータ構造を処理する作業を簡素化するために、JSON framework for Objective-Cを使用するとよいでしょう。 Webサービスプッシュについては

+0

確かにこれは正しい応答ではありません。 – DevDevDev

+0

それは私がiPhoneからデータを取得する必要のあるWebサービスを持っているなら、私はCometを使う必要があるということですか?しかし、Javascriptライブラリを使用せずにこれを行う方法は? – DevDevDev

+1

いいえ、JavaScriptは必要ありません。彗星は単なるアイデアです。最も簡単な実装は、非常に長いタイムアウトが非同期に実行されるNSURLConnectionか、非UIスレッドで実行されることです。サーバーにデータがあるまで接続は開いたままにしておく必要があります。その場合、データを送信して接続を閉じる必要があります。その後すぐにサーバーへの新しい接続を開き、待機します。 – s4y

0

は、別名彗星あなたは、この他のStackOverflowの質問here.

1

をチェックアウトしたいことがありますが、これは他の記事で言及されているかもしれないが、http://code.google.com/p/istreamlight/はチェックアウトするには良い場所です。それはlightstreamerサーバーを使用しています(それについてはわかりません)。アプリケーションのために彗星クライアントを実装する方法があるかどうかを見てみましょう。

私は正直言って私がもっと役立つことを望みます。あなたがjavascriptでこれを行う方法を求めていたなら、私はそれを全面的に使います!あなたが必要なもの

幸運、

-Todd

+0

これはJSでこれを行うための情報のトンです。リンクをありがとう、私はそれを調べます。 – DevDevDev

3

は、(このような光ストリーマなど)COMETフレームワークのいくつかの並べ替えです。これを行うにはいくつかの方法があります - ソケット接続またはHTTPサーバーは、配信可能なデータがあるか、HTTPリクエストがタイムアウトするまでポーリングを保持します。その他のオプションには、FlashやSilverlight/Moonlightなどのプラグインを使用するオプションがあります(このようなことがモノタッチを使用してiPhoneで可能だったとしますか?)

多くのデータをFrozen MountainのWebSyncは、あなたの負荷に合わせて拡張できるホストされたCOMETベースのPubSubフレームワーク(WebSync on Demand)をサポートしています。 Javascript経由でうまく動作し、きれいなAPIを持っています。

+0

私は非常にWebSync(サーバーエクスプレス版、オンデマンドではない)ソフトウェアを使用していることに非常に感銘を受けました。ドキュメントは現時点ではちょっと薄いですが、Googleグループのコミュニティを監視していますので、質問への回答を得るのに数時間以上かかることはありませんでした。 – Matt

関連する問題