func stream(c vodka.Context) error { res := c.Response().(*standard.Response).ResponseWriter gone := res.(http.CloseNotifier).CloseNotify() res.Header().Set(vodka.HeaderContentType, vodka.MIMETextHTMLCharsetUTF8) res.WriteHeader(http.StatusOK) ticker := time.NewTicker(1 * time.Second) defer ticker.Stop() fmt.Fprint(res, "<pre><strong>Clock Stream</strong>\n\n<code>") for { fmt.Fprintf(res, "%v\n", time.Now()) res.(http.Flusher).Flush() select { case <-ticker.C: case <-gone: break } } }