現在のプロジェクト設定
私はFacebookチャットと同様にWebベースのチャットに取り組んできました。現在の状態では、着信チャットをリッスンし、既存のチャットの新しいメッセージを確認します...
setTimeout(function() { listenForIncomingChat() }, 500);
setTimeout(function() { checkForIncomingMessages( ...params... ) }, 500);
...そうsetTimeout()
することで、これらの関数が常に実行されていることを確認します。開いているチャットウィンドウの数によっては、Firebugのコンソールがサーバーに夢中になる可能性がPOST
あります:)
明らかにこれは本当に非効率的ですが、それは私が物事を機能させることができる唯一の方法です。今、私はそれをより良くする方法、それを正しく行う方法を探しています!
いくつかの研究
今、 Cometプログラミングについて聞いたことがあり、これがサーバーとの長寿命のHTTP接続を開く方法であると聞きましたが、Cometの背後にあるテクノロジーやアイデアに精通していません。HTML5用のWebSocketはおそらくさらに優れていますが、それは本格的ではなく、すべてのブラウザーでサポートされているわけではないので、機能するものに固執します。
ウィキペディアによると、Cometスタイルで開発する方法はいくつかあります。ストリーミング(非表示のiFrame、XMLHttpRequest)または長いポーリングを使用するAJAX(XMLHttpRequest、スクリプトタグ)です。しかし、私はこれについて何も知りません。AJAX Push Engine(APE)についても読んだことがあり、見た目はかっこいいですが、当面はサードパーティを使用したくありません。
最近WebChat2.0に出くわしたので、ソースコードを調べて、すべてがどのように機能するかを理解しようと思います。
質問に移ります
では、この種のプロジェクトを開始する方法に関するサンプルコード/チュートリアルはどこにありますか?コメットテクニックをどのように実装しますか?サーバーとの長期間有効なHTTP接続を設定するにはどうすればよいですか?