2010-12-01 12 views
3

現在、NSURLRequestなどを使用する新しいメッセージがあるかどうかを確認するために3秒ごとにサーバーに照会しています。存在する場合は、データベースに保存し、NSNotificationCenter通知がない場合は3秒待ってから再試行します。IMスタイルのアプリケーションで新しいメッセージを受信する最良の方法

これを行う最も良い方法ですか?私は、サーバーへの永続的な接続を開くことは推奨されておらず、推奨されていないことを認識しています。

私の主な心配は、新しい情報がなくても空の(情報はありますがそれでも数バイトは大きい)XMLフィードがダウンロードされ、3秒ごとにこれを実行すると最終的には追加され、データ。

いずれのポインタも大歓迎です。

ありがとうございます。

答えて

4

XMPPは長寿命のTCP接続でこれを行います。 XMPPサービスの使用はどうですか?

+0

完了しました。 :)素晴らしい - 特に余分なXMLと。 :) –

0

push notificationsあなたのアプリのオプションはありますか?

+0

そうですが、これはアプリ内のものです。アプリが実行されている場合、プッシュ通知なしでリアルタイムで更新したいと考えています。アプリが閉じている場合は、プッシュ通知が必要です。 –

+0

申し訳ありませんが、私の答えを忘れてください。これは確かにiPhoneでこれを行う方法です。 – steveoh

+2

これらは信頼性が低く、適時に到着または到着することが保証されていないことがあります。彼らは迷子になるかもしれませんし、後で数時間後に来るかもしれません。そして、あなたがそれらの束を送るなら、あなたは時々最後を受け取るだけです。 XMPPのような素敵なプロトコルを使った永続的なTCP接続は、行く方法です(家庭内プロトコルでもそうですが、TCP接続は永続的でなければなりません)。 – DarkDust

1

私が書いた自分のアプリケーションの1つはIMクライアントで、私たちが開発したアプリはIM機能を持っています。

私自身のアプリは、通信に直接ソケット接続とTCPを使用します。 TCP接続はハートビートメッセージとともに生き続ける。一方、アプリケーションは、独自のプロトコル(自分のIMアプリケーションの場合)の代わりに、TCPまたはUDP接続を使用する点で基本的に同じXMPPベースのソリューションを使用しています。 XMLメッセージは前後に送信されます。

現在のサーバーの実装方法によって異なります。これは単にアプリのチャットの実装か、iPhoneアプリを使用していない可能性のある他のユーザーが利用できるのですか?何かを壊すことなくサーバー上の実装を変更することは可能でしょうか?

+0

現時点では私のサーバーは私のアプリと同じように実装されています。私がしているのは、私はXMLをチャックするPHPスクリプトを持っているということです。新しいメッセージが到着するとXMLが更新され、新しいメッセージが表示され、iPhoneからダウンロードされます。すべてが変更するのは簡単ですし、XMPPはやり方のように見えます。 –

関連する問題