Skip to content

Instantly share code, notes, and snippets.

@tbruyelle
Created June 12, 2020 09:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tbruyelle/537adf359aa681128e922a5a4ab5961b to your computer and use it in GitHub Desktop.
Save tbruyelle/537adf359aa681128e922a5a4ab5961b to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"log"
"net/http"
"time"
)
func stream() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
ticker := time.NewTicker(time.Second * 3)
defer ticker.Stop()
var count int
//fmt.Fprintf(w, "# ~1KB of junk to force browsers to start rendering immediately: \n")
//io.WriteString(w, strings.Repeat("# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n", 13))
for {
fmt.Println("streaming", count)
fmt.Fprintf(w, "{\"key\": %d}\n", count)
count++
w.(http.Flusher).Flush()
select {
case <-ticker.C:
case <-r.Context().Done():
fmt.Println("done:", r.Context().Err())
return
}
}
})
//srv := http.Server{
// Addr: ":8181",
//}
//http2.ConfigureServer(&srv, nil)
//log.Fatal(srv.ListenAndServe())
log.Fatal(http.ListenAndServe(":8181", nil))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment