chunkedはMessagePack形式の物だけを想定しています。以下、リクエストヘッダ部分だけを抜粋。Bodyにパラメータを付けない分、速度面で多少有利な気がします。tagの前にresourceを追加resourceにより受けるフォーマットを分離。resource無しin_httpと同じ形式です。http://localhost:8888/tag.herejsonjが1レコードのjsonでjsがlistを受けます。chunkedを受けます。http://localhost:8888/js/test.tag.here;Fluentd側では以下のように受信します。{"action":"login","user":2}パフォーマンス簡単にですが、それぞれのフォーマットの速度比較をしてみました。使用したコードはexamples以下に起きました。ような結果になりました。msgpackのchunked形式がやはり速かったです。バッチ処理的に1日分のファイル内容をFluentdに対して送信したりする時に良さそうです。listだと思っています。試すために、curlとかnetcatとかrubyで色々やってみます。仕様とりあえず仕様を確認してみます。CRLF)curlcurlからデータを送ってみます。clientheaderにchunkedやkeepaliveの情報を付加すればchunkedになると聞いてやってみます。http://localhost:8888/resource/testrequestserver側にrequestが来ました。bodyに16進数でsizeが入っています。0CRLFCRLFで1chunkと見るようです。bodyの後に余計にCRLFが1つ入ってしまっています。仕様を見た限りでは必要無さそうです。host.txtの内容を増やしていくと、どこかのタイミングでchunkが分割されるようです。100-continue12hogehogefugafuga0netcatclientにもnetcatを使ってみます。8888clientnetcatクライアントcurlのrequestを真似しました。$portrequestserver側にrequestが来ました。netcatでは、標準入力が閉じられるとコネクションが閉じられるようです。100-continue12hogehogefugafuga0ruby最後にrubyからもデータを送ってみます。いってもクライアントはnetcatをpipeで開いて送っています。tcpserver.rbclientRubyからnetcatをパイプで開いてデータを送ってみます。1度headerを投げたあとに10回bodyを送ってコネクションを切ります。server以上の実験でchunkedでのデータのやり取りが分かってきました。サーバーにcool.ioを使用してchunkedなrequestを処理してみます。bodyを画面出力します。#{ADDR}:#{PORT}"event_loop.runrequest無事にbodyを取り出せました。chunkedがなかなか分からず苦労しました。間違っている部分があれば、ご指摘ご助言等頂けると幸いです。chunkedを試してみるTweet広告を非表示にするもっと読むコメントを書く2013-07-04Rubyでデーモンを作ってみるRubyRubyでデーモンを作ってみます。test.txtファイルに1秒ごとに"test"と書き続けるデーモンです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。