summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/labstack/echo/cookbook/http2/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/labstack/echo/cookbook/http2/server.go')
-rw-r--r--vendor/github.com/labstack/echo/cookbook/http2/server.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/github.com/labstack/echo/cookbook/http2/server.go b/vendor/github.com/labstack/echo/cookbook/http2/server.go
new file mode 100644
index 00000000..8db989c4
--- /dev/null
+++ b/vendor/github.com/labstack/echo/cookbook/http2/server.go
@@ -0,0 +1,42 @@
+package main
+
+import (
+ "fmt"
+ "net/http"
+ "time"
+
+ "github.com/labstack/echo"
+)
+
+func request(c echo.Context) error {
+ req := c.Request()
+ format := "<pre><strong>Request Information</strong>\n\n<code>Protocol: %s\nHost: %s\nRemote Address: %s\nMethod: %s\nPath: %s\n</code></pre>"
+ return c.HTML(http.StatusOK, fmt.Sprintf(format, req.Proto, req.Host, req.RemoteAddr, req.Method, req.URL.Path))
+}
+
+func stream(c echo.Context) error {
+ res := c.Response()
+ gone := res.CloseNotify()
+ res.Header().Set(echo.HeaderContentType, echo.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.Flush()
+ select {
+ case <-ticker.C:
+ case <-gone:
+ break
+ }
+ }
+}
+
+func main() {
+ e := echo.New()
+ e.GET("/request", request)
+ e.GET("/stream", stream)
+ e.Logger.Fatal(e.StartTLS(":1323", "cert.pem", "key.pem"))
+}