ブラウザのJavaScriptでPOSTリクエストのBodyをストリーミングしたいが、Chromeも未対応みたい
hr.icon
fetch(, {body})または、new Request({body})のbodyでReadableStreamを渡したいが、ブラウザみたいの様子。
https://gyazo.com/d65d70fdfc61c292d42454e8815fc282
試し試しのコードだが、ないよりマシだと思うので、貼っておく。今後ブラウザが対応して動いてくれたり、コードの間違いがあって、直したらうまくいったりすることを期待したい。
動機
Piping ServerとかTrans ServerとかPOST/PUTのボディをストリーミングして使うサーバーのクライアント開発で使いたい。暗号化のストリーミングなどを挟んだりしたい。エンドツーエンド暗号化ができれば、信用できないサーバーでも安心して使えるようになる。Webで動けばAndroid/iOS/Windows/macOS/Linuxなども一気に対応できて、PWAにすればアプリぽくなるし良さそう。 将来的には
将来的には、この機能が搭載される見込みはとてもありそう。
ブラウザようのStreams APIの仕様の中の例にforRemote.pipeTo(httpRequestBody)というものがあって、いかにもPOSTをストリーミングしそうなコード。
搭載されても、JSのエンジンが新しくないと動かないので、使うときは限定的になりそう。
ElectronなどでV8のバージョンが固定できるときとか
Monacaとか(多分Webview的なもののバージョン固定できそう)
Polyfillが作れればいいのだが、それが作れればfetch()のこの仕様を待つ必要すらなくなってくる。
動いていると思われるのでサポートされるのが楽しみ。
「Wed, Dec 5, 2018, 9:44 PM GMT+9」のコメントからあんまり動いていない様子。DuplicateなIssueがmergedされるコメントがいくつか並んでいる。duplicateすることが多いってことは他の人の需要があるのだと思う。