[Go] Chunked Transferで返すHTTPサーバー
HTTPのストリーミングサーバーのいわゆるLong Pollingってヤツ。
net/httpを使う普通のやり方に加えて、
ポイントは
ってこと。
Transfer-Encodingヘッダをchunkedにするとか、
Content-Lengthヘッダをセットしてはいけないとか、
は、勝手にやってくれる。
これを起動したならば、curlコマンドで試してみませう。
curl -v http://localhost:8085/
ヘッダが表示され、
< HTTP/1.1 200 OK
< Date: Fri, 24 Oct 2014 05:14:14 GMT
< Content-Type: text/plain; charset=utf-8
< Transfer-Encoding: chunked
その5秒後に
one
その5秒後に
two
が表示される!
net/httpを使う普通のやり方に加えて、
ポイントは
- WriteHeaderを先に呼ぶ
- http.ResponseWriterをFlushする
ってこと。
Transfer-Encodingヘッダをchunkedにするとか、
Content-Lengthヘッダをセットしてはいけないとか、
は、勝手にやってくれる。
これを起動したならば、curlコマンドで試してみませう。
curl -v http://localhost:8085/
ヘッダが表示され、
< HTTP/1.1 200 OK
< Date: Fri, 24 Oct 2014 05:14:14 GMT
< Content-Type: text/plain; charset=utf-8
< Transfer-Encoding: chunked
その5秒後に
one
その5秒後に
two
が表示される!
コメント
コメントを投稿