タグ

cometに関するse-miのブックマーク (22)

  • Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件

    « Pathtraq 最新ランキング ガジェットを公開しました | メイン | Q4M (Queue for MySQL) 0.3 リリース » 2008年03月10日 高速なCometサーバを書いてみた件 もう昨年の2月になりますが、Comet について調査を行いました。その際の成果をまとめたスライドは既に公開していた (Comet の正しい使い方) のですが、同時に実際に作ってみた実装についても、オープンソース化することとなりました。コードは CodeRepos に置いておきますので、どうぞご覧ください。 (Revision 7754: /lang/perl/fastr) 使い方は example ディレクトリ以下を見ていただくとして、ベンチマークの結果とチューニング手法について、記録と記憶に残っている範囲からまとめておきたいと思います。 パフォーマンスについて まず、パフォーマンスに

    se-mi
    se-mi 2008/03/10
    高速動作させるコードの書き方みたいなのもちょこっと書いてある
  • 第2回 Comet---プッシュ型のWebアプリケーションを作る

    この記事は,日経ソフトウエア2007年1月号,連載「簡単実装で学ぶWeb技術2006」の第7回「Comet――プッシュ型のWebアプリケーションを作る」の再録です。記事は執筆時の情報に基づいており,現在では異なる場合があります。 こんにちは,結城浩です。 今回は,サーバーからデータをプッシュするタイプのWebアプリケーションを作成する技法の「Comet」を紹介します。簡単なチャット・プログラムを通してCometの仕組みを学びましょう。 Cometとは 通常のWebアプリケーションは,クライアント(Webブラウザ)から送られてくるリクエストを受け取って動作します。つまり,WebアプリケーションはユーザーがWeb上のリンクをたどったり,ボタンを押したりすることをきっかけに動くのです。ここで,動きの主導権はクライアント側にあります。クライアントがサーバーから情報を「引き出す」ことによって動作する

    第2回 Comet---プッシュ型のWebアプリケーションを作る
    se-mi
    se-mi 2008/03/03
    結城さん
  • ドリコム研究室より、コミュニティサイト alis テストリリース - babie, you're my home

    ドリコム研究室より、alis(http://alis.drecom.jp/) をテストリリースします。ゲームというか、コミュニティというか、Second Life ならぬ 1.5th Life といった感じです。な… 何を言ってるのか わからねーと思うが(ry。αリリースなので若干ヘルプレス! alis のココがみどころ: ブラウザだけで遊べる! Comet 技術を使った(もち Shooting Star !) を使ったリアルタイムコミュニケーション! つーか、要はチャットです。 アバターを自由に作成できる! おそらくみんな好き勝手アップするので、通常のアバターのようなお行儀の良いものじゃなくてテラカオスになります。 Blog っぽいものがついてる! 位置座標を付加できて、Hiki フォーマット! Wiki っぽいものがついてる! 位置座標を付加できて、Hiki フォーマット! テーマがア

    ドリコム研究室より、コミュニティサイト alis テストリリース - babie, you're my home
    se-mi
    se-mi 2007/06/25
  • ヽ( ・∀・)ノくまくまー(2007-05-27) [Rails] Comet 勉強会 #1

    ● [Rails] Comet 勉強会 #1 勉強会の日の朝はいつもサボリの誘惑がある。もう少し寝ていたかったり、外に出るのが面倒な気分になったり、他の事をやりたくなったり、急に敷居を高く感じたり、雨が降ったり。でも、勇気を出して行くと、神様はいつもいい経験を与えてくれる。今回もニコニコ動画の中の人とか凄い人達が一杯いた。そういう人達と話をする機会、彼らの思考過程を直接見れる機会があるのは凄く貴重だ。 Don't be afraid 意義ある貴重な時間。Don't be afraid Don't be Erlang! ということで Erlang に関する勉強会。リl|*´∀`l|<でも誰も Erlang について勉強してきてないんだよ。だからブレスト形式になっちゃったー。しかし、そこがいい!ドキュメントもコードもなしに、みんながそれぞれ持つ少ない情報から技術的知識と論理的思考によってErl

  • みかログ: ErlangでComet

    ErlangでCometしてみた. (iframe方式は結局だめそうなので,Cometに) Comet チャットサンプル 実装はきわめて手抜きです.あくまでサンプルとして. ソース: chat.erl (22行.etsテーブルの初期化) chat.yaws (72行.サーバ側の実装) index.html (52行.HTML+JS) ※別途jqueryが必要 こんだけ短いソースでも,ちゃんとCometできるし,C10Kにも対応できる.(問題はいろいろあるコードだけど) いろいろちゃんと実装したとしても,かなりシンプルに仕上がると思う. Comet の正しい使い方で紹介されているプログラミングモデルのどれにも当てはまらない新しい方式,といえるかも. Cometのために特殊な実装をする必要もないし,I/O多重化など実装がめんどくさい手法を使う必要もない. 普通に各リクエストの処理を書いて,新規

  • チャットをCometより楽に実装する方法 - みかログ

    JavaScriptベースのチャットを作るとき,Cometを使うのが一般的とされているようだけど,もっと楽な方法でも良さそうに思える. Cometでは1回リクエストを受け取るたびにコネクションを切断しているので,Keep-aliveなどと併用しなければならない. 実際に都度TCP接続を張り直すとコストが大きいので,Keep-Aliveを併用したりする必要があるものの,それも色々裏技的な回避をしないとだめな模様. (Cometの正しい使い方を参照) でも,チャットを実装する上では,都度コネクションを切断する必要がなさそうに思える. iframeで別のページを読み込み,その中で script タグを使って親フレームを更新するだけではダメなのだろうか. この方法であれば, ・Cometのように,切断してから再接続するまでのタイムラグがないので,サーバ側の余計な処理が減る.(切断中に届いたメッセー

    チャットをCometより楽に実装する方法 - みかログ
    se-mi
    se-mi 2007/05/01
  • http://rails.office.drecom.jp/takiuchi/archive/175

  • エラー

    se-mi
    se-mi 2007/04/17
  • Kazuho@Cybozu Labs: Comet の正しい使い方

    « 「スーパー技術者争奪戦」 | メイン | JavaScript から Flash の便利な機能を使う方法 » 2007年02月23日 Comet の正しい使い方 今日会社の勉強会で Comet について話す機会がありました。 Comet については、普及するかどうかという以前に、どう使えばいいのか、正しく使った場合に何をどこまでできるのか、という理解が共有されていないように思います。なので、(あくまで私見ですが) 使用したスライドの一部を公開したいと思います。よろしければごらんください。また、問題や改善すべき点があれば、教えていただければ幸いです。

    se-mi
    se-mi 2007/02/23
  • PoCo::HTTP による Comet チャットサーバのスケーラビリティ - 酒日記 はてな支店

    せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。 http://d.hatena.ne.jp/dayflower/20061116/1163663677 こちらの POE::Component::HTTP による Comet チャットサーバですが、どのぐらいの接続まで耐えられるのか? 実験。 クライアントとして、HTTP::Async を使って同時接続を張りまくるスクリプトを用意。 #!/usr/bin/perl use HTTP::Async; use HTTP::Request; use Time::HiRes qw/time/; use strict; my $slots = shift || 20; my $async = HTTP::Async->new( slots => $slots ); my $req = HTTP:

    PoCo::HTTP による Comet チャットサーバのスケーラビリティ - 酒日記 はてな支店
    se-mi
    se-mi 2007/02/10
  • PoCo::HTTP で Comet チャットサーバを作る - daily dayflower

    せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。ありきたりですが。 POE::Component::* でウェブサーバを立ち上げられるのは現在のところ, POE::Component::Server::HTTPServer POE::Component::Server::SimpleHTTP POE::Component::Server::HTTP の3つがあります。1番目は最近 inactive なのでパス。2番目は「イベントフレームワーク」への馴染みはいいんですが「Simple」じゃなくなってます。3番目はコールバック関数を登録するというお気楽スタイルなんですがちょっと雑な感じ。 今回は楽をするために3番目の PoCo::HTTP を使ってみたいと思います。id:naoya 氏も最近紹介してましたし。 URI の設計指針は, チャ

    PoCo::HTTP で Comet チャットサーバを作る - daily dayflower
    se-mi
    se-mi 2006/11/17
  • ウノウラボ Unoh Labs: 【サイト研究】第6回 Lingr - Comet を利用した ConnectiveChat - (10/16)

    akano です。 今回は、江島健太郎氏のチームが開発した、「ブラウザ上で動くチャット」Lingr の研究を行いました。 チャットという Web アプリは 20世紀から存在するネットアプリです。CGIBOY のチャットは自分もよく使っていました。 チャットというのは複数の人間が同時にアクセスしており、その Web ページはリアルタイムに変化することになっています。そのリアルタイム性を担保するために Web ブラウザは○秒おきにサーバに対してリクエストを送り、サーバは○秒毎の最新のページを生成しブラウザ(クライアント)に送信します(ボーリング)。 それはすなわち、「ただページを表示するだけで」チャットサーバに対して膨大なアクセスがくることを意味します。例えば、1000 ユーザが同時接続している状態で、1秒に1度の間隔でポーリングを行うと、月間で26億ヒットとなり Google のページビ

    se-mi
    se-mi 2006/10/18
  • 「足あとライブ!」

    昨日公開した、リアル・タイム・ページビューカウンター(RPV Counter)に関して、さっそくLingrの開発者の江島健太郎さんから「Webで読者が自分以外の人の存在の『気配』みたいなものが感じられるというのは面白いですよね。」というコメントをいただいた。それにに刺激されて今朝作ったのが「足あとライブ!」。自分の「気配」をもっと明示的に他の人に知らせる仕組みだ。 このブログの右上のページビュー・カウンターの下にある「足あとアイコン」は、クリックすると色を変えることができるのだが、その情報がCometサーバーを伝わって、同時にこのブログを見ている他の人のアイコンにも反映されるようになっているのだ。 ちなみに、Lingrとは、この「足あとライブ!」と同じく、CometサーバーによるPUSHの仕組みを使った「ブラウザ上で動くチャット」である。RPV Counterのデバッグ中に、クライアントか

    se-mi
    se-mi 2006/10/13
  • Life is beautiful: JSON COMETでリアルタイム・ページビュー・カウンターを作ってみた

    最近Linuxの勉強もかねて作っているのが、超シンプルなアーキテクチャーのHTTPサーバー。そこそこ動き始めたのだが、それだけでは面白くないので、サーバー側からイベントに応じてデータをPushできるCometの機能を足してみた。 ストレステストのために、昨日からこのブログにこっそりとテスト用のIFRAMEを貼り付けてあったのだが(そのおかげで、バグを三つばかり見つけることができた―感謝、感謝^^)、安定して動き始めたので、見栄えを整えてこのブログの右上に貼り付けてみた。 題して、「リアルタイム・ページビュー・カウンター(RPV Counter)」。Totalはこのカウンターをリセットしてからのページビューの数、Currentはその時点でこのブログを見ている人の数(ただしノイズあり)、PeakはCurrentの過去最大値だが、ページを再ロードせずとも、それぞれのカウンターが自動的にアップデー

    se-mi
    se-mi 2006/10/11
  • Web 2.0の挑戦者:超軽快なウェブチャットLingr

    Lingrのユーザーは一部の地域に集中していますか、それとも広く分散していますか。 Lingrは、サービスの開始から数日で多くの国に広がりました。今のところ、最もユーザーが多いのはアメリカと日です。 半年後、あるいは2年後に、Lingrはどうなっていると思いますか。 半年間は、ユーザーが集まりやすいようにすることに集中します。2年後には、Lingrが人々のウェブ上でのライフスタイルを変えている、というところまで行きたいですね。 プロジェクトを成功させるのに最も難しいことは何ですか。 Lingrを広めることです。 Lingrを次の段階に進めるためには何が必要ですか。 ブラウザのウィンドウを開いていない状態でもユーザーがオンラインかどうかを知らせる仕組みです。 Lingerはブラウザがコネクションを維持する仕組みをサポートしているのですが、ユーザーは他の人たちが来るのを待つためにブラウザのウ

    Web 2.0の挑戦者:超軽快なウェブチャットLingr
    se-mi
    se-mi 2006/10/10
    lingrの製作者インタビュー
  • おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(前編) (recompile.net)

    « 突然、有名サイトに自分の写真が掲載されていたら | メイン | おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(後編:その1) » おとこのCometアプリケーション! 非モテのためのJetty 6 Continuation入門まとめ(前編) はじめに Jetty 6には、継続(continuation)という機構が用意されました。この記事では、その応用例であるCometによるウェブアプリケーションの実装を取り上げ、解説をします。 Cometでは、サーバプッシュ型アプリケーションを実現するために、サーバに対してHTTPコネクションを張り続ける必要があります。こうした接続の手法は、従来のHTTPサーバでは想定されているものではありません。 また、Cometが提供するイベントドリブン型のウェブアプリケーションでは、サーバ側や、クライア

    se-mi
    se-mi 2006/09/27
  • 話題のCometを実装、「Lingr」はリアルタイムWebを目指す ― @IT

    2006/9/23 インフォテリアの米国子会社インフォテリアUSAが公開したチャットサービス「Lingr」が話題を呼んでいる。サーバからの情報をプッシュする新しい技術「Comet」を採用し、従来のチャットサービスと比べて極めて軽快な操作性を実現している。インフォテリアの代表取締役社長 平野洋一郎氏は「LingrはCometを活用した技術的なアプローチ。LingrのようなリアルタイムWebが今後注目されるだろう」と語った。 従来のチャットシステムはクライアントからサーバに対して数秒おきにポーリングを行い、新しいメッセージを取ってきていた。しかし、この仕組みではメッセージ投稿と表示の間にタイムラグが出てリアルタイム性が損なわれる、ネットワークに負荷がかかるなどの問題があった。また、クライアント側の操作性を高める技術として画面表示と非同期でデータをサーバから取得するAjaxがある。だが、Ajax

    se-mi
    se-mi 2006/09/24
  • Ajax うきうき Watch 第12回 サーバが通信を開始できるComet活用Webチャット

    このニュースの意義は、ただ単にそのようなサービスが正式版として開始されたということではありません。来、デスクトップ上のソフトウェアで最強企業であったマイクロソフトが、格的にWeb上のサービスに取り組んでいるという点で、特に大きなインパクトがあるわけです。他社が同様のサービスを始めるのとは、意味の質が違います。 とはいえ、まったく個人的な見解を述べるなら、現在のマイクロソフトには統一された「マイクロソフトの意思」ないし「一貫した目標」のようなものは存在しないと感じられます。さまざまな方向性への試みが競合しているのが、現在のマイクロソフト文化なのではないか……と感じます。つまり、Windows Liveがこうして立派にサービスを開始したということが、そのまま「マイクロソフトの意思」であるとまではいえないわけです。マイクロソフトの別の部分は、別の意思を持ち、例えばデスクトップの世界を堅持しよ

    se-mi
    se-mi 2006/09/23
    cometとか
  • CNET Japan Blog - 江島健太郎 / Kenn's Clairvoyance:Lingr and Comet - 技術解説編

    さて、お待たせしました。いよいよCometとLingrについての技術解説です。 ■Comet解説 さて、まずはCometとは何で、どういう背景によって生まれたのか、についての解説から始めます。 まず前提として、Webアプリケーションにおいては、通信開始のトリガーは常にクライアント側が握っています。つまりURLを入力したりボタンをクリックしたときなどに通信が発生することになるわけですが、このようなアーキテクチャは、サーバ側で発生した変化をリアルタイムにクライアント側に通知することが原理的にできないことを意味します。 チャット・アプリケーションでは、複数のユーザから不定期にメッセージが送信され、それが他の参加者に一斉に配信されなければなりません。しかし、メッセージを受け取ったサーバ側では、それをクライアントに即座にプッシュで通知する方法がないのです。 そのため、一定期間ごとにブラウザがサーバに

    se-mi
    se-mi 2006/09/22
  • Ajaxの“彗星”とともに現われたチャットサービス“Lingr”を使ってみた

    AJAXは洗剤の名前!? スパムメールの“スパム”が、もともとアメリカに古くからあるハムの缶詰の商品名をもじったものだと知らない人はいまどき少ないだろうが、最近話題の“Ajax”(エイジャックス:Asynchronous JavaScript and XML)が、アメリカで販売されている洗剤のブランド名をもじったものだと知らない人はいるのではないだろうか。 WikipediaでAjaxの項を引いて、もう少し“Ajax”という名前の元をたどると、それはギリシア神話に出てくる英雄の名前だったり、小惑星の名前だったり、はたまた16世紀末にイギリスで発明された水洗トイレのことだったりするようだが、ここでは、それはどうでもいい。 IT業界では昔から製品名やプロジェクト名を付けるときに、まず略称ありき、という遊びがよく行われる。たとえば東京工業大学の大規模分散スパコン、“TSUBAME(ツバメ)”とい

    Ajaxの“彗星”とともに現われたチャットサービス“Lingr”を使ってみた
    se-mi
    se-mi 2006/09/12
    push型