diff options
Diffstat (limited to 'vendor/github.com/labstack/echo/cookbook/websocket')
-rw-r--r-- | vendor/github.com/labstack/echo/cookbook/websocket/gorilla/server.go | 47 | ||||
-rw-r--r-- | vendor/github.com/labstack/echo/cookbook/websocket/net/server.go | 41 |
2 files changed, 88 insertions, 0 deletions
diff --git a/vendor/github.com/labstack/echo/cookbook/websocket/gorilla/server.go b/vendor/github.com/labstack/echo/cookbook/websocket/gorilla/server.go new file mode 100644 index 00000000..e9d52dbb --- /dev/null +++ b/vendor/github.com/labstack/echo/cookbook/websocket/gorilla/server.go @@ -0,0 +1,47 @@ +package main + +import ( + "fmt" + "log" + + "github.com/labstack/echo" + + "github.com/gorilla/websocket" + "github.com/labstack/echo/middleware" +) + +var ( + upgrader = websocket.Upgrader{} +) + +func hello(c echo.Context) error { + ws, err := upgrader.Upgrade(c.Response(), c.Request(), nil) + if err != nil { + return err + } + defer ws.Close() + + for { + // Write + err := ws.WriteMessage(websocket.TextMessage, []byte("Hello, Client!")) + if err != nil { + log.Fatal(err) + } + + // Read + _, msg, err := ws.ReadMessage() + if err != nil { + log.Fatal(err) + } + fmt.Printf("%s\n", msg) + } +} + +func main() { + e := echo.New() + e.Use(middleware.Logger()) + e.Use(middleware.Recover()) + e.Static("/", "../public") + e.GET("/ws", hello) + e.Logger.Fatal(e.Start(":1323")) +} diff --git a/vendor/github.com/labstack/echo/cookbook/websocket/net/server.go b/vendor/github.com/labstack/echo/cookbook/websocket/net/server.go new file mode 100644 index 00000000..aa746030 --- /dev/null +++ b/vendor/github.com/labstack/echo/cookbook/websocket/net/server.go @@ -0,0 +1,41 @@ +package main + +import ( + "fmt" + "log" + + "github.com/labstack/echo" + "github.com/labstack/echo/middleware" + "golang.org/x/net/websocket" +) + +func hello(c echo.Context) error { + websocket.Handler(func(ws *websocket.Conn) { + defer ws.Close() + for { + // Write + err := websocket.Message.Send(ws, "Hello, Client!") + if err != nil { + log.Fatal(err) + } + + // Read + msg := "" + err = websocket.Message.Receive(ws, &msg) + if err != nil { + log.Fatal(err) + } + fmt.Printf("%s\n", msg) + } + }).ServeHTTP(c.Response(), c.Request()) + return nil +} + +func main() { + e := echo.New() + e.Use(middleware.Logger()) + e.Use(middleware.Recover()) + e.Static("/", "../public") + e.GET("/ws", hello) + e.Logger.Fatal(e.Start(":1323")) +} |