クライアントのポーリングによって駆動される単純なチャットサーバーを作成しました。クライアントは数秒ごとにデータの要求を送信し、新しいメッセージと、ピアがまだ接続されているかどうかに関する情報を受け取ります。
クライアントはモバイルプラットフォーム(iPhone)で実行されているので、私はポーリングを取り除く方法を探していました。これにより、バッテリーがすぐに消耗します。http接続を無期限に開いたままにしておくことは可能であると読みましたが、実際にこの手法を利用する方法を理解していません。また、そのような接続がモバイル環境で使用するのに十分安定しているかどうか疑問に思っています。
理想的なシナリオは、クライアントに影響を与えるイベント(ピアがメッセージを投稿したりオフラインになったりするなど)が発生した場合にのみ、サーバーがクライアントにデータを送信することです。
これをhttp経由で実行することをお勧めしますか、それともtcp経由で独自のプロトコルを作成する必要がありますか?xmppを自分のニーズに合わせてカスタマイズするのはどれほど難しいでしょうか(私のチャットサーバーには、簡単に実装する必要のある特殊な機能がいくつかあります)。