Skip to content

Commit 6d9b1fc

Browse files
committed
+gin使用quickws的例子
1 parent d9206de commit 6d9b1fc

File tree

1 file changed

+46
-2
lines changed

1 file changed

+46
-2
lines changed

README.md

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ quickws是一个高性能的websocket库
1313
## 内容
1414
* [安装](#Installation)
1515
* [例子](#example)
16-
* [服务端](#服务端)
16+
* [标准库服务端](#标准库服务端)
17+
* [gin服务端](#gin服务端)
1718
* [客户端](#客户端)
1819
* [配置函数](#配置函数)
1920
* [客户端配置参数](#客户端配置)
@@ -31,7 +32,7 @@ go get github.com/antlabs/quickws
3132
```
3233

3334
## example
34-
### 服务端
35+
### 标准库服务端
3536
```go
3637

3738
package main
@@ -83,6 +84,49 @@ func main() {
8384
http.ListenAndServe(":8080", nil)
8485
}
8586

87+
```
88+
### gin服务端
89+
```go
90+
package main
91+
92+
import (
93+
"fmt"
94+
95+
"github.com/antlabs/quickws"
96+
"github.com/gin-gonic/gin"
97+
)
98+
99+
type handler struct{}
100+
101+
func (h *handler) OnOpen(c *quickws.Conn) {
102+
fmt.Printf("服务端收到一个新的连接")
103+
}
104+
105+
func (h *handler) OnMessage(c *quickws.Conn, op quickws.Opcode, msg []byte) {
106+
// 如果msg的生命周期不是在OnMessage中结束,需要拷贝一份
107+
// newMsg := makc([]byte, len(msg))
108+
// copy(newMsg, msg)
109+
110+
fmt.Printf("收到客户端消息:%s\n", msg)
111+
c.WriteMessage(op, msg)
112+
// os.Stdout.Write(msg)
113+
}
114+
115+
func (h *handler) OnClose(c *quickws.Conn, err error) {
116+
fmt.Printf("服务端连接关闭:%v\n", err)
117+
}
118+
119+
func main() {
120+
r := gin.Default()
121+
r.GET("/", func(c *gin.Context) {
122+
con, err := quickws.Upgrade(c.Writer, c.Request, quickws.WithServerCallback(&handler{}))
123+
if err != nil {
124+
return
125+
}
126+
con.StartReadLoop()
127+
})
128+
r.Run()
129+
}
86130
```
87131
### 客户端
88132
```go

0 commit comments

Comments
 (0)