From 1e992ab31d3c246ecf97a6464dac3d8dcc4418cb Mon Sep 17 00:00:00 2001 From: Mark McGranaghan Date: Sun, 11 Nov 2012 13:04:45 -0800 Subject: [PATCH] notes on streaming http servers --- .../streaming-http-servers.go | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 examples/streaming-http-servers/streaming-http-servers.go diff --git a/examples/streaming-http-servers/streaming-http-servers.go b/examples/streaming-http-servers/streaming-http-servers.go new file mode 100644 index 0000000..7abe552 --- /dev/null +++ b/examples/streaming-http-servers/streaming-http-servers.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "net/http" + "time" +) + +func stream(resp http.ResponseWriter, req *http.Request) { + respf, ok := resp.(http.Flusher) + if !ok { + panic("not flushable") + } + fmt.Println("stream") + resp.WriteHeader(200) + for i := 0; i < 10; i++ { + n, err := resp.Write([]byte("tick\n")) + respf.Flush() + fmt.Println("tick", n, err) + time.Sleep(time.Second * 1) + } +} + +func main() { + http.HandleFunc("/", stream) + fmt.Println("serve") + http.ListenAndServe(":5000", nil) +}