Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hertz-contrib/websocket
Websocket for Hertz
https://github.com/hertz-contrib/websocket
hertz websocket
Last synced: 3 months ago
JSON representation
Websocket for Hertz
- Host: GitHub
- URL: https://github.com/hertz-contrib/websocket
- Owner: hertz-contrib
- License: apache-2.0
- Created: 2022-06-06T10:02:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T12:07:53.000Z (3 months ago)
- Last Synced: 2024-10-28T15:37:13.195Z (3 months ago)
- Topics: hertz, websocket
- Language: Go
- Homepage:
- Size: 42 KB
- Stars: 36
- Watchers: 5
- Forks: 13
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# Hertz-WebSocket(This is a community driven project)
This repo is forked from [Gorilla WebSocket](https://github.com/gorilla/websocket/) and adapted to Hertz.
### How to use
```go
package mainimport (
"context"
"log""github.com/cloudwego/hertz/pkg/app"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/hertz-contrib/websocket"
)var upgrader = websocket.HertzUpgrader{} // use default options
func echo(_ context.Context, c *app.RequestContext) {
err := upgrader.Upgrade(c, func(conn *websocket.Conn) {
for {
mt, message, err := conn.ReadMessage()
if err != nil {
log.Println("read:", err)
break
}
log.Printf("recv: %s", message)
err = conn.WriteMessage(mt, message)
if err != nil {
log.Println("write:", err)
break
}
}
})
if err != nil {
log.Print("upgrade:", err)
return
}
}func main() {
h := server.Default(server.WithHostPorts(addr))
// https://github.com/cloudwego/hertz/issues/121
h.NoHijackConnPool = true
h.GET("/echo", echo)
h.Spin()
}```
### More info
See [examples](examples/)