どのように私は、ポーリングによって駆動されていないチャットサーバを作成するのですか?

StackOverflow https://stackoverflow.com/questions/1173032

質問

私は、クライアントのポーリングによって駆動され、簡単なチャットサーバーを作成しました。クライアントは、データ数秒ごとの要求を送信し、そのピアがまだ接続されているかどうかについての新しいメッセージなどの情報を渡します。

は、クライアントがモバイルプラットフォーム(iPhone)上で実行されているので、私はすぐにバッテリーを消耗ポーリング、退治の方法を模索してきました。私はそれが無限にオープンhttp接続を維持することが可能だということを読んだが、実際には、この技術を利用する方法を理解していません。私はまた、このような接続は、モバイル環境で使用するのに十分安定しているかどうか迷っています。

理想的なシナリオは、それらに影響を与えるイベントが(例えば、ピアがメッセージを投稿するか、行をオフに行くと)発生した場合、サーバーがクライアントのみにデータを送ることになります。

これは、HTTPを介してこれを実現しようとすることをお勧めです、または私は、TCP上で、私自身のプロトコルを記述する必要がありますか?どのようにハードそれは私のニーズにXMPPをカスタマイズすることであろう(私のチャットサーバーは、私は簡単に実装しなければならないいくつかの特殊な機能を持っている)。

役に立ちましたか?

解決

どのようにプッシュ技術はどうですか?参照 http://en.wikipedia.org/wiki/Comet_(programming)する

他のヒント

私はあなたがBOSHの上にXMPPを記述していると考えています。

http://xmpp.org/extensions/xep-0206.htmlする

私はチャットサーバと非モバイルデバイス上のJavaScriptクライアントの間で、このHTTP-結合法を使用しました。それは私のためによく働いています。

あなたはこのプロジェクトをチェックアウトしたいかもしれませんにその彗星を含む様々な技術を使用しています。 リリースの詳細はこちらをしている、ここでそのページからの抜粋は、/ <ですP>

  

これは、私の明確な喜びができるようにします   最初の公開上映を発表します   私が取り組んできたプロジェクトの   先月の私の暇な時間で、または   2、新しいWebベースのIRCチャット   アプリケーションます。

     

このプロジェクトはの多くを結集します   でなければならなかった新技術   これを実現可能にするために開発され、   スケーラブルかつ効率ます。

     

根本的なツールのいくつかはに構築します   私が考えるこのかのうを作ります   「十分に安定」は既にリリースされ、   このよう PHPソケットデーモンライブラリのよう   私は扱うことができるように書いています   多くの数百〜数千まで   「彗星」HTTP接続、および等しいです   IRCクライアント接続の量ます。

私は、これはほぼ不可能で危険だと思います。インターネットは、クライアントとサーバー間の接続が常に信頼できないとして扱われていることステートレスとコネクションレスの意味を動作します。そして、これは楽しみのためではありません。

あなたは新しい問題を導入しているステートフル接続を取得しようとすることで。特に、第3世代のアプリケーションから。どのような接続が切断された場合は?あなたは、サーバーを制御することはできませんし、プッシュすることはできません。

私はそれもSMS /テキストメッセージを送信することが容易にして、それを処理するアプリケーションを持っていると思います。

scroll top