mirror of
https://github.com/labstack/echo.git
synced 2025-04-21 12:17:04 +02:00
Updated recipe for WebSocket
Signed-off-by: Vishal Rana <vr@labstack.com>
This commit is contained in:
parent
4686f882d6
commit
10c44a6f8c
@ -46,7 +46,6 @@ func upload(c *echo.Context) error {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
e.Use(mw.Recover())
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
|
@ -69,7 +69,6 @@ func upload(c *echo.Context) error {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
e.Use(mw.Recover())
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
|
@ -5,16 +5,14 @@
|
|||||||
<title>WebSocket</title>
|
<title>WebSocket</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<pre>
|
<p id="output"></p>
|
||||||
</pre>
|
|
||||||
<script>
|
<script>
|
||||||
var loc = window.location;
|
var loc = window.location;
|
||||||
var uri;
|
var uri = 'ws:';
|
||||||
|
|
||||||
if (loc.protocol === 'https:') {
|
if (loc.protocol === 'https:') {
|
||||||
uri = 'wss:';
|
uri = 'wss:';
|
||||||
} else {
|
|
||||||
uri = 'ws:';
|
|
||||||
}
|
}
|
||||||
uri += '//' + loc.host;
|
uri += '//' + loc.host;
|
||||||
uri += loc.pathname + 'ws';
|
uri += loc.pathname + 'ws';
|
||||||
@ -26,8 +24,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
ws.onmessage = function(evt) {
|
ws.onmessage = function(evt) {
|
||||||
console.log('Message')
|
var out = document.getElementById('output');
|
||||||
|
out.innerHTML += evt.data + '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setInterval(function() {
|
||||||
|
ws.send('Hello, Server!');
|
||||||
|
}, 1000);
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
|
||||||
|
|
||||||
"github.com/labstack/echo"
|
"github.com/labstack/echo"
|
||||||
mw "github.com/labstack/echo/middleware"
|
mw "github.com/labstack/echo/middleware"
|
||||||
|
"golang.org/x/net/websocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -14,9 +13,20 @@ func main() {
|
|||||||
e.Use(mw.Recover())
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
e.Static("/", "public")
|
e.Static("/", "public")
|
||||||
e.WebSocket("/ws", func(c *echo.Context) error {
|
e.WebSocket("/ws", func(c *echo.Context) (err error) {
|
||||||
io.Copy(c.Socket(), c.Socket())
|
ws := c.Socket()
|
||||||
return nil
|
msg := ""
|
||||||
|
|
||||||
|
for {
|
||||||
|
if err = websocket.Message.Send(ws, "Hello, Client!"); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = websocket.Message.Receive(ws, &msg); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
println(msg)
|
||||||
|
}
|
||||||
|
return
|
||||||
})
|
})
|
||||||
|
|
||||||
e.Run(":1323")
|
e.Run(":1323")
|
||||||
|
@ -57,7 +57,6 @@ func upload(c *echo.Context) error {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
e.Use(mw.Recover())
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
|
@ -77,7 +77,6 @@ func upload(c *echo.Context) error {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
e.Use(mw.Recover())
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
|
@ -6,22 +6,78 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
|
||||||
|
|
||||||
"github.com/labstack/echo"
|
"github.com/labstack/echo"
|
||||||
mw "github.com/labstack/echo/middleware"
|
mw "github.com/labstack/echo/middleware"
|
||||||
|
"golang.org/x/net/websocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
e.WebSocket("/ws", func(c *echo.Context) error {
|
e.Use(mw.Recover())
|
||||||
io.Copy(c.Socket(), c.Socket())
|
|
||||||
return nil
|
e.Static("/", "public")
|
||||||
|
e.WebSocket("/ws", func(c *echo.Context) (err error) {
|
||||||
|
ws := c.Socket()
|
||||||
|
msg := ""
|
||||||
|
|
||||||
|
for {
|
||||||
|
if err = websocket.Message.Send(ws, "Hello, Client!"); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = websocket.Message.Receive(ws, &msg); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
println(msg)
|
||||||
|
}
|
||||||
|
return
|
||||||
})
|
})
|
||||||
|
|
||||||
e.Run(":1323")
|
e.Run(":1323")
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`index.html`
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>WebSocket</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p id="output"></p>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var loc = window.location;
|
||||||
|
var uri = 'ws:';
|
||||||
|
|
||||||
|
if (loc.protocol === 'https:') {
|
||||||
|
uri = 'wss:';
|
||||||
|
}
|
||||||
|
uri += '//' + loc.host;
|
||||||
|
uri += loc.pathname + 'ws';
|
||||||
|
|
||||||
|
ws = new WebSocket(uri)
|
||||||
|
|
||||||
|
ws.onopen = function() {
|
||||||
|
console.log('Connected')
|
||||||
|
}
|
||||||
|
|
||||||
|
ws.onmessage = function(evt) {
|
||||||
|
var out = document.getElementById('output');
|
||||||
|
out.innerHTML += evt.data + '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
setInterval(function() {
|
||||||
|
ws.send('Hello, Server!');
|
||||||
|
}, 1000);
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
## [Source Code](https://github.com/labstack/echo/blob/master/recipes/websocket)
|
## [Source Code](https://github.com/labstack/echo/blob/master/recipes/websocket)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user