タグ

POEに関するinurotaのブックマーク (10)

  • オススメCPANモジュールその1。 AnyEvent - TokuLog 改めB日記

    というわけで、俺の独断と偏見によるオススメモジュールのコーナーです。 AnyEvent は poll/select/kqueue/epoll(4) などのイベントループを抽象化するライブラリです。似たような目的のものとして Danga::Socket, POE などがありますが、ライブラリ全体のインターフェースの完成度や速度などの点から AnyEvent を僕は一番押しています。 Pure Perl で利用できますし、インターフェースも安定しています。まだバリバリ開発されてますが、backward incompat な変更はされないようです。 作者が mlehmann 氏ということで、ドキュメントは丁寧ですが攻撃的な文章が目立ちますし、バグレポートすると異常な長文がかえってきたりするのでうっとーしかったりしますが、コードの品質はたかいので、気にする必要はないかとおもいます。コードの品質の前

    inurota
    inurota 2010/08/18
    「AnyEvent は poll/select/kqueue/epoll(4) などのイベントループを抽象化するライブラリです」
  • inetd の仕組みを見てみる - naoyaのはてなダイアリー

    inetd や xinetd (以下 inetd) はインターネットサービスをデーモン化するのに共通している処理を担い、ほとんどの時間をアイドル状態で過ごすその手のサービスに必要なリソースを節約する役割を果たします。 inetd のひとつ面白いところは、inetd でサービス化したいプログラムの標準入力/標準出力がクライアントソケットの入出力に接続されるところです。例えば daytime 相当のサービスを自分で作ろうと思った場合 #!/usr/local/bin/perl # daytime.pl use strict; use warnings; use DateTime; use IO::Handle; STDOUT->autoflush(1); STDOUT->printf( "%s\n", DateTime->now(time_zone => 'Asia/Tokyo') ); と標

    inetd の仕組みを見てみる - naoyaのはてなダイアリー
    inurota
    inurota 2010/08/17
    inetdをPerlで実装
  • POE::Component::Server::HTTP - Foundation of a POE HTTP Daemon - metacpan.org

    NAME POE::Component::Server::HTTP - Foundation of a POE HTTP Daemon SYNOPSIS use POE::Component::Server::HTTP; use HTTP::Status; my $aliases = POE::Component::Server::HTTP->new( Port => 8000, ContentHandler => { '/' => \&handler1, '/dir/' => sub { ... }, '/file' => sub { ... } }, Headers => { Server => 'My Server' }, ); sub handler { my ($request, $response) = @_; $response->code(RC_OK); $response

  • Blog Developer's Cookbook : Weblogs.com Ping Gateway to はてなアンテナ (POE版)

    Weblogs.com Ping Gateway to はてなアンテナ (POE版) 前回紹介した、はてなアンテナ Ping ゲートウェイには、1点問題がありました。Ping を受け取った後、HTTPリクエストを発行してレスポンスを待っているため、Ping 受信に非常に時間がかかることがあるという点です。ここに時間がかかると、Blog ツールのエントリビルド処理が待たされることになり、好ましくありません。Ping を受けとったら即座にレスポンスを返し、非同期にアンテナへのリクエストを投げる方がよいでしょう。 今回のレシピでは、POE と呼ばれるフレームワークを使用して、この処理の非同期化を行ってみます。 Perl の非同期処理 一般に、外部へのネットワーク接続(この場合は、はてなアンテナへのHTTP接続)などによるブロッキング(*1)を避けるためには、一連の処理を個別に非同期で(async

  • cometネタ,ふたたび - file-glob こと k.daibaの日記

    1対1チャット 1対1でチャットするcometベースの仕組みを作ってみました.クライアント側はまだブラッシュアップしてる最中ですが,サーバ側のコードは落ち着いてきたのでまとめてみます.このサーバは html, css, jsファイルのダウンロード /sendにクライアントが投げてきたpostメッセージの受信 /helloにクライアントがJSONで投げてきたgetメッセージの受信 受信したpostメッセージを,getメッセージへのresponseとして特定のクライアントにJSONP形式で送信 死活監視を兼ねて,システムにログイン中のユーザ一覧をgetメッセージへのresponseとして全クライアントにJSONP形式で送信 という機能を持っています. POE::Component::Server::HTTP my $server = POE::Component::Server::HTTP->

    cometネタ,ふたたび - file-glob こと k.daibaの日記
  • cometネタ - file-glob こと k.daibaの日記

    なんとか動いた cometで何か動くものを作ってみようと思っていたのですが,ネタを思いつかなくて忘れていました.で,ふとクライアントの時刻じゃなくて,サーバから時刻を配信するツールを作れば簡単なサンプルになるんじゃないかと思いつきました.win上のIE6とFF2,mac上のsafariとFF2で動くところまできたので,とりあえずまとめてみます. サーバ系 参考にしたのはPoCo::HTTP で Comet チャットサーバを作る - daily dayflowerと2006-11-20です.っていうか,ほとんどそのまま.いずれはcomet用とPODに記載があるSprocketベースで作り直そうと思っていますが,今のところはPOE::Component::Server::HTTPベース.元のスクリプトと違うところは,1秒ごとにクライアントに対して時刻データをJSON形式で送っているところです.

    cometネタ - file-glob こと k.daibaの日記
  • のみまくし日記 - 影舞に登録されたらIRCで告知 影舞に登録されたらIRCで告知

    『給料査定ミーティング』をやりました。 というか、題のそれは10分程度で終わって、あとは延々のレイアウトのはなしとか。(WARAI) 今の会社は、10人程度しかいないのに、コミュニケーションがとれてなくて、ひとりぼっち感や外注感があるとか、とりあえず、そういうのを改善するためにレイアウトを変えてみませんか〜と言おうとおもったら、自らレイアウト変更についてどう思いますか?と聞かれた。 な〜んだ、社長もそういうの感じてたんだ〜とちょっと安心しました。 先週からずーっとなやんでいた、SOAPの問題が解決しました! おたすけマンこと、ク社時代の先輩から、「Unix版の SOAP::Liteおかしげよ、Win版でためしてみたら?」というアドバイスをもらいました。 なにーと思って、試してみると。キター。うごきました!! Win版で試すなんておもいもしなかったですよ。激しく感謝です。 というわけで、僕

    inurota
    inurota 2010/08/17
    POE::Component::TSTP->create(); # Ctrl-Z をトラップする
  • スタンドアロンWebサーバ書くのにPOEはいいかも - はこべにっき ♨

    スタンドアロンWebサーバ書くのにPOE::Component::Server::HTTPはかなりお手軽ですね。エラー処理とかいろいろはしょると以下のコードで、Webサーバが走ります。 use strict; use warnings; use POE qw( Component::Server::HTTP Sugar::Args ); my $httpd_aliases = POE::Component::Server::HTTP->new( Port => 8080, ContentHandler => { '/' => \&httpd_index, } ); sub httpd_index { my ($request, $response) = @_; $response->code(RC_OK); $response->content('Hello, POE!'); return

    スタンドアロンWebサーバ書くのにPOEはいいかも - はこべにっき ♨
  • 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
  • ダウンロードたけし(寅年)の日記 - POEでログをtailするComet

    今更ながら、perl(POE)でCometっぽいものを書いてみようと思い挑戦してみました。 「Cometと言えばチャット」というくらい、サンプルや例題のほとんどがチャット関連のネタばかりなので、あえてそういう類いのものではなく、もっと地味なネタでせめてみようと思います。 ズバリ、ログ監視です。 「アクセスログをちょっと確認するだけなのに、いちいちコンソールから入ってtail -fするのが面倒」というズボラなひとに向けです。 まず要点を整理しておきますと、 ブラウザからログ監視をする ログ監視のON/OFFはブラウザから操作可能 Cometの方式はLong-Pollモデルを採用 サーバ側の実装は POE::Component::Server::HTTP と Wheel::FollowTail がメイン クライアント側はjavascript(Mini Ajax)を使って実装 です。 色々なbl

    ダウンロードたけし(寅年)の日記 - POEでログをtailするComet
  • 1