タグ

asyncとperlに関するbayashi_netのブックマーク (5)

  • Amon2で非同期レスポンスを使う方法と、非同期WebAppのハマりどころ - 時計を壊せ

    この記事はPerl Advent Calendar 2013の15日目の記事です。 Amon2とは @tokuhirom さんが開発しているPerl製のWAF*1です。 Plackを軽くwrapしたような軽量でシンプルなWAFです。 現在、Version 6.00がリリースされていますが、Version 3.50からwebsocketのサポートが入り、 その関係でPSGIの遅延レスポンス/ストリーミングレスポンスのインターフェースに対応しています。 Amon2で非同期レスポンスを使う Amon2::Plugin::Web::Streamingを使う事により非同期でレスポンスを返す事が出来ます。 例えば、index.txを5秒後にrenderして返す場合は以下のようになります。 use strict; use warnings; use utf8; use Amon2::Lite; use

    Amon2で非同期レスポンスを使う方法と、非同期WebAppのハマりどころ - 時計を壊せ
  • libuv の Perl バインディング - unknownplace.org

    気分転換プロジェクトとして、libuvのPerlバインディングを書いている。 typester/p5-UV - GitHub 現状、timerとtcp周りを一通り実装したところ。 実装は愚直にlibuvの関数とperlの関数を1:1に(uv_tcp_init(...)をUV::tcp_init(...)というような形で)マッピングしている。 この実装はlow level APIと位置づけ、その上に使いやすい高レベルなインタフェースをPerl上で用意したいつもり。 このlow level APIをつかったTCP echo serverはこんな感じになる: use strict; use warnings; use UV; my $server = UV::tcp_init(); UV::tcp_bind($server, '0.0.0.0', 3000) && die 'bind error

  • FurlX::Coro を使ってみたかった - はちゅにっき

    節電対応で休日が日・月になった hatyuki です。ということで、明日がおやすみ! 「DB から引っ張ってきた 5,000 件くらいの URL が、全部 HTTP Status Code 200 を返してくるか調べたいんだけど。」 という、なさそうでやっぱない依頼をうけたのでささっと書いてみることに。 ぱっと思いついたのはこんな感じ。 use strict; use warnings; use Furl; use My::Util qw/ db /; use Test::More; my $furl = Furl->new; my $itr = db->search('tables'); while (my $row = $itr->next) { my $res = $furl->head($row->url); is $res->code, 200, $row->url; } don

    FurlX::Coro を使ってみたかった - はちゅにっき
  • Tatsumakiアプリケーションを作ってみる - すぎゃーんメモ

    Tatsumakiを使ったアプリの例は幾つか見たことはあったのだけど、 TwitterStreamをTatsumakiを使ってブラウザ表示 - メメメモモ TatsumakiとTwiggy使ってみた - punitan (a.k.a. punytan) のメモ Big Sky :: TatsumakiとDUI Streamを使って画像ストリーミングサーバ作ってみた。 実際に自分で書いたことはなくて、結構分からないことが多かったので、自分でもサンプルアプリを作ってみた。やっぱり実際に書きながら試したりする方が理解できる…。 Tatsumakiにあるchatアプリの例を参考にしながら。 Tatsumaki/eg/chat at master · miyagawa/Tatsumaki · GitHub 作ったのはアクセスログ(timestamp, useragent)をリアルタイムにブラウザ表示

    Tatsumakiアプリケーションを作ってみる - すぎゃーんメモ
  • 1枚psgiファイルでchatのようなもの - ひゅんひゅんメモ

    前々から同時接続中のクライアントにサーバから通知というのがものすごーくやりたかったのだけどこのたびTwiggyとTatumakiのegとぶつかり稽古を重ねてようやくできた。 多分最近だとこういうのやるのにWebSocketとかでやるのかもしれないけどそれだとブラウザが対応してなかったりするとアレなのとTwiggyのegと全く同じになってしまう気がするのでjquery.ev.js使ってlong-poll(というのかしら)でやってますです。 use strict; use warnings; use Encode; use JSON; use Data::Section::Simple; use Text::Xslate; use Plack::Request; use Plack::Builder; #$ENV{TWIGGY_DEBUG} = 1; my $vpath = Data::Sec

    1枚psgiファイルでchatのようなもの - ひゅんひゅんメモ
  • 1