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)がいるんだけどそいつの使い方が
びみょー。
(びみょーというかまあこれからのところ)
うくく。