Code Archive Skip to content Google About Google Privacy Terms
« Pathtraq 最新ランキング ガジェットを公開しました | メイン | Q4M (Queue for MySQL) 0.3 リリース » 2008年03月10日 高速なCometサーバを書いてみた件 もう昨年の2月になりますが、Comet について調査を行いました。その際の成果をまとめたスライドは既に公開していた (Comet の正しい使い方) のですが、同時に実際に作ってみた実装についても、オープンソース化することとなりました。コードは CodeRepos に置いておきますので、どうぞご覧ください。 (Revision 7754: /lang/perl/fastr) 使い方は example ディレクトリ以下を見ていただくとして、ベンチマークの結果とチューニング手法について、記録と記憶に残っている範囲からまとめておきたいと思います。 パフォーマンスについて まず、パフォーマンスに
この記事は,日経ソフトウエア2007年1月号,連載「簡単実装で学ぶWeb技術2006」の第7回「Comet――プッシュ型のWebアプリケーションを作る」の再録です。記事は執筆時の情報に基づいており,現在では異なる場合があります。 こんにちは,結城浩です。 今回は,サーバーからデータをプッシュするタイプのWebアプリケーションを作成する技法の「Comet」を紹介します。簡単なチャット・プログラムを通してCometの仕組みを学びましょう。 Cometとは 通常のWebアプリケーションは,クライアント(Webブラウザ)から送られてくるリクエストを受け取って動作します。つまり,WebアプリケーションはユーザーがWeb上のリンクをたどったり,ボタンを押したりすることをきっかけに動くのです。ここで,動きの主導権はクライアント側にあります。クライアントがサーバーから情報を「引き出す」ことによって動作する
Tomcat 6で実現!Ajaxを超える通信技術Comet:Tomcatはどこまで“安全”にできるのか?(3)(1/3 ページ) Ajaxを超える? Tomcat 6で搭載されたCometとは? 前回はTomcatを“安全”に活用するために、ツールを使った運用の仕方やTomcatの設定について解説しました。 今回はTomcatの安全性から少し離れて、Tomcat 6の新機能の利用方法について解説します。Tomcat 6では、いくつかの大きな拡張がありましたが、今回はJ2SE 1.5で実装されたNew I/O API(java.nioパッケージ)を用いたComet(コメット)通信について解説します。 おさらい 「通常のHTTPでの通信」 通常のHTTPでの通信はクライアントのWebブラウザなどからサーバへリクエストを送信し、サーバはリクエストを解釈してレスポンスを返します。つまり、通信のタイ
Perlでモダンなネットワークサーバーを書くには - naoyaのはてなダイアリーKazuho@Cybozu Labs: Comet の正しい使い方 PoCo::HTTP で Comet チャットサーバを作る - daily dayflower2007-02-09 - 酒日記 はてな支店cometの抱える問題点クロスドメイン制約専用サーバにする場合、HTTPデフォルトの80ポートはapacheなりlighttpdで使いたいから、8080なり8888なり別のポートを使うことになる。その場合IEやOperaなら問題ないのだけれど、FireFoxはクロスドメイン制約に引っかかってXHRが使えないらしい。/(^o^)\ナンテコッタイしかもRFC2616によると、同じホストに対して張れるセションが2〜4。そのため複数のセションを貼りたいとき(ex. 複数のチャットルームに入室)はサブドメインを切って
はじめに 本記事では、『CometとAjaxを利用したチャットサーバの実装』で紹介したCometを利用したWebチャットを、ASP.NET上で実現する方法を説明します。CometというWebアプリケーションのアーキテクチャや、クライアントとサーバーの動作については、前掲の記事を参照してください。対象読者 本記事は中級以上のWebアプリケーション開発者を対象に、ASP.NETの非同期ハンドラのデザインを説明します。本記事の関心の対象は、ASP.NETの非同期ハンドラというデザインパターンのため、対象読者を必ずしもASP.NETを対象として開発されている方に限定していません。 ただし、開発環境としてWindows XPまたはWindows 2003 Serverと、Visual Studio 2005またはVisual Web Developer 2005 Express Editionの利用
« 「スーパー技術者争奪戦」 | メイン | JavaScript から Flash の便利な機能を使う方法 » 2007年02月23日 Comet の正しい使い方 今日会社の勉強会で Comet について話す機会がありました。 Comet については、普及するかどうかという以前に、どう使えばいいのか、正しく使った場合に何をどこまでできるのか、という理解が共有されていないように思います。なので、(あくまで私見ですが) 使用したスライドの一部を公開したいと思います。よろしければごらんください。また、問題や改善すべき点があれば、教えていただければ幸いです。
先週末に予定されていたJTPA企画の梅田さん主催オンラインサロンですが、会場に多くの人が集まるにつれてLingrが重くなってしまうという事態に陥ってしまい、まるでイベントの体をなさないまま時間が過ぎてしまい、あえなく中止となってしまいました。 当イベントを楽しみにしていた皆様、そして梅田さんはじめJTPAスタッフの方々には、本当に申し訳なかったと思います。ここに改めてお詫び申し上げます。 Macworld 2007のときには180人を収容して何の問題もなく快適に使えていたので、「1000人はわからないけど、200人ぐらいなら大丈夫だろう」とたかをくくっていたのが間違いでした。 今回はその反省も含めて、内部で検証した技術情報をすべて公開し、どのような問題に直面し、どのように解決にあたっているのかをお伝えすることで、特に技術者の皆さんに役立つフィードバックにしたいと思います。 ■今回のアーキテ
はじめに 『簡単なHTTPサーバの自作』第5回目の今回は、クライアントとの通信に、ブラウザ自身によるリクエスト/レスポンスに加えてAjaxとCometを利用した簡単なチャットアプリケーションを実装します。 Webアプリケーションでチャットを実装する場合に考えなければならないのは、他の発言者のメッセージをどうやってブラウザへ反映させるかです。自分が発言する場合は、サーバへ対してメッセージが送信されます。従って応答データに現時点の発言を返せば済みます。しかし、この方法だけでは他の参加者の発言を発言時に読むことはできません。 この問題を解決する手段は複数あります。 次の図は最も原始的ですが、確実な『F5連打法』を図示したものです。 F5連打法では、ユーザーは最新の発言がありそうだと感じた時に[F5]を叩きます。するとブラウザが最新の情報をサーバへ取りに行くため、もし発言が更新されていればその情報
Overview A "page-view counter" or "hit counter" is a mechanism that displays the number of page-views on an HTML page. It uses a server side of script that counts the page-views, dynamically generates an HTML page on the server side, and returns it back to the browser. Although it accurately displays the number of page-views at the point when the HTTP request was made to fetch the HTML page, it wi
akano です。 今回は、江島健太郎氏のチームが開発した、「ブラウザ上で動くチャット」Lingr の研究を行いました。 チャットという Web アプリは 20世紀から存在するネットアプリです。CGIBOY のチャットは自分もよく使っていました。 チャットというのは複数の人間が同時にアクセスしており、その Web ページはリアルタイムに変化することになっています。そのリアルタイム性を担保するために Web ブラウザは○秒おきにサーバに対してリクエストを送り、サーバは○秒毎の最新のページを生成しブラウザ(クライアント)に送信します(ボーリング)。 それはすなわち、「ただページを表示するだけで」チャットサーバに対して膨大なアクセスがくることを意味します。例えば、1000 ユーザが同時接続している状態で、1秒に1度の間隔でポーリングを行うと、月間で26億ヒットとなり Google のページビ
さて、お待たせしました。いよいよCometとLingrについての技術解説です。 ■Comet解説 さて、まずはCometとは何で、どういう背景によって生まれたのか、についての解説から始めます。 まず前提として、Webアプリケーションにおいては、通信開始のトリガーは常にクライアント側が握っています。つまりURLを入力したりボタンをクリックしたときなどに通信が発生することになるわけですが、このようなアーキテクチャは、サーバ側で発生した変化をリアルタイムにクライアント側に通知することが原理的にできないことを意味します。 チャット・アプリケーションでは、複数のユーザから不定期にメッセージが送信され、それが他の参加者に一斉に配信されなければなりません。しかし、メッセージを受け取ったサーバ側では、それをクライアントに即座にプッシュで通知する方法がないのです。 そのため、一定期間ごとにブラウザがサーバに
AJAXは洗剤の名前!? スパムメールの“スパム”が、もともとアメリカに古くからあるハムの缶詰の商品名をもじったものだと知らない人はいまどき少ないだろうが、最近話題の“Ajax”(エイジャックス:Asynchronous JavaScript and XML)が、アメリカで販売されている洗剤のブランド名をもじったものだと知らない人はいるのではないだろうか。 WikipediaでAjaxの項を引いて、もう少し“Ajax”という名前の元をたどると、それはギリシア神話に出てくる英雄の名前だったり、小惑星の名前だったり、はたまた16世紀末にイギリスで発明された水洗トイレのことだったりするようだが、ここでは、それはどうでもいい。 IT業界では昔から製品名やプロジェクト名を付けるときに、まず略称ありき、という遊びがよく行われる。たとえば東京工業大学の大規模分散スパコン、“TSUBAME(ツバメ)”とい
Microsoftは、ASP.NETをAjaxに対応させるMicrosoft版Ajaxツールセットの名称を、洗剤の商標をもじった「Comet」から「Atlas」へと変更した。 巧みなコードネームを考え出すのを得意とするMicrosoftは、同社のAjax(Asynchronous JavaScript and XML)ツールセットを、洗剤の商標であるAjaxの競合製品にちなんで名付けようとしていたが、発表の数時間前に名称が変更された。 サンフランシスコで開催された「Ajax Experience」カンファレンスのパネルディスカッションに出席したMicrosoft Atlasチームのグループ製品マネジャー、ブラッド・エイブラムズ氏は、「現在、Atlasと呼ばれているMicrosoftの技術は、数時間前まで『Comet』(注:洗剤の商標でもある)という名前で呼ばれていた」と語った。 「発表の数
説明 緑茶は接続を維持しておくことによって 非常に高速なやりとりを可能にした絵チャットです。 特徴は以下のようなものです。 Ajax & Comet なリアルタイム応答 貧乏症プログラミングなのでたぶん軽い 過去ログ保存機能 サーバサイド GIF 生成 更新情報 060424. 1.0 。 公開。 アナウンス。 デモ デモ 。 自由になんか書いて下さい。 クリアを押すと保存されつつ画面が消えます。 以下はスクリーンショット。 ダウンロード ryokucha.tgz Ruby が動けばだいたい動くかと思いますが、 mkgif.c のコンパイルは大変かもしれません。 TODO このくらいでいいかなと思っています。 Opera でヘン。 謝辞 giflib 4.1.4 を使用しています。 piccy をログの表示に使用しています。 姉妹品 AJA Chat は過激なチャットです。 紅茶 は普通の
説明 紅茶は接続を維持しておくことによって 非常に高速なやりとりを可能にした Web チャットです。 特徴は以下のようなものです。 Ajax & Comet なリアルタイム応答 時間経過でポーリングモードになるのでたぶんサーバに優しい(設定で常時接続も可) 貧乏症プログラミングなのでたぶん軽い 過去ログ保存機能 プラグイン機能 JSの無い環境でも動作 メッセージ分離してあるので簡易カスタマイズ可能 IRC と同期するボットつき マニュアル も参照下さい。 更新情報 060611. IRC とのブリッジである Assam2 を追加。 アナウンス 。 060416. 1.1 。 サニタイズ甘すぎたので修正。 IRCとのブリッジを作った。 060413. 1.0 。 公開。 アナウンス 。 デモ デモ 。 自由に発言したりなんやらして下さい。 二つのブラウザでログインしてみるとリアルタイム性がわ
sayさん にたいていの AJAX は Asynchronous では無い、と教えてもらったので、真に Asynchronous なチャットを作りました。あと XML 関係無いので AJA です。 http://shinh.skr.jp/chat/ とりあえず上記を見ていただいてもよくわからないのですが、えーといかに Asynchronous かどうかを確認するには、他の人と一緒に入るか、一人で複数種類のブラウザを立ち上げて別名でログインすると良いと思います。残念ながら同一ブラウザで複数入るとか、同じログイン名で入るとかするとおかしいことになります。 えーとそんでなんというか。要するにたいていの AJAX は Asynchronous と言いつつも1秒おきだのでポーリングしてるわけですね。しかしそれでは1秒おきにしか発言が来ないしサーバに1秒おきにアクセスするし…でイマイチなわけです。 で
AjaxうきうきWatchではWebアプリのユーザビリティを改善しまくるAjax、Ajax、それはWeb2.0へと続く道とAjax界隈での動向をお伝えしている。 今回は「Backbase」という開発言語とツールや「BrowserHawk」というWebブラウザ自動判定ツール、すぐに反応が返ってくるチャット、「ConnectiveChat」をメインに今月の動向を解説する。 Backbase Ajax関係のツールやライブラリがいろいろ生まれつつあります。特に、アメリアかでは商用の製品も次々とリリースされつつあります。実は、これらの製品のサイトを見て困るのは、具体的にそれが何をしてくれるものであるのか読み取りにくいことが多いことです。Ajaxの特質として、実際に動くデモを見せるのは容易です。例えば、この製品の場合、Backbase RSS Readerというデモのリンクをたどって、RSSリーダーの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く