2009-04-14 11 views
2

私はTelnetで接続できるチャットをしました。私のチャットは現在ツイステッドTCPサーバとして実装されています。それをブラウザ用のチャットに変換するにはどうすればよいですか?ツイストでウェブチャットをする

静的HTMLと動的コンテンツを同時に配信できるようにするには、私は彗星サーバー(例:Orbited)を使用する必要があります。このような彗星サーバーは、高速で信頼性の高いチャットには必要ですか?

答えて

1

彗星は、特別なものを使わずに(フラッシュのように、以下を参照)、最良の選択です。実績のある技術で、GmailのチャットやFacebookのチャットなど、多くの大きなサイトで使用されています。

あなたが持っている唯一のオプションは、ポーリングですが、時にはサーバー上で激しくなることがあります。あなたは基本的に速度に対するサーバーの負荷を測る必要があります。頻繁にポーリングすると非常に反応の良いクライアントが得られますが、サーバーに負荷がかかります。ポーリングが少なすぎると負荷が軽くなりますが、クライアントはすべてn秒のメッセージしか受信できないため、遅く感じることがあります。

ポーリングする場合は、常に「バックオフ」システムを作成できます。たとえば、2秒ごとにページがチェックされ、チャットメッセージが送信されているかどうかが確認されます。これは5回行い、何もなければ3秒に遅延を増加させます。これは5回、何もせずに4秒になります。チャットメッセージが送信されると、最短の遅延に戻ります。

もう1つの選択肢は、FlexまたはFlashクライアントを使用することです。こうすれば、データがある場合にのみデータを送信するTCPソケットを使用できます。しかし、これはあなたのサイトにFlashアプリケーションが本当に必要な場合にのみ有効です。

+0

ありがとう、彗星サーバーがリクエストなしでブラウザにデータを送信するためのチャットアプリ用のインターフェイスを提供しているのは間違いありませんか? "この方法では、データがある場合にのみデータを送信するTCPソケットを使用できます。"私はTelnetと同じバックエンドアプリケーションを使用することができますか? – Alex

+0

あなたはまだ彗星でリクエストをしなければなりませんが、技術は基本的に非常に長い投票です。あなたのWebページはPHPページを要求しますが、PHPリクエストはサーバーが実際にデータを送信するまで開かれたままです。この「長い投票」は、定期的な投票とは対照的に、数分続く可能性があります...(続き) – ryeguy

+0

...送信するものがない場合はすぐに確認して戻ります)。この例はhttp://www.zeitoun.net/articles/comet_and_php/startでご覧になれます。そして、はい、あなたがフラッシュでTCPを選択した場合、TelnetはTCP上で動作するので、Telnetで入力できます。ただし、テキストベースのプロトコルを使用する必要があります – ryeguy

0

うわーです!チェックwww.meebo.com!彼らは基本的なプラットフォームとして彗星を使用しています!

関連する問題