Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

twisted.web2

一部で話題のweb2ですが。
keeplive対応版webモジュール。
responseがstreamになるんでDefferedで処理するようになる。

readStream(response.stream, receiveData).addCallback(done)

みたいな。
データはとりあえずあるだけreceiveDataにはいってくる。
keepalive対応なので続きがあれば再度receiveDataが呼ばれる。
完全に終わるとdoneを呼ぶ。
という流れ。
web2版のgetPageを作っても旨みがない(全データ取得するまで待つから)のでやめた。
(もともと?のrawDataReceived?って名前だったかな。のようにbufferに貯め続ける)
headerは

response.headers

で簡単に取れる。但し、callbackは普通に使うと引き数がひとつだけなので返し方をひねる必要あり。
keepaliveなので受けたデータを他に投げてまたそれを返したりをつなぎっぱでできる。
その状態ごとに呼ばれるフックみたいなもの(IHTTPClientManager)がいるんだけどそいつの使い方が
びみょー。
(びみょーというかまあこれからのところ)
うくく。