File tree Expand file tree Collapse file tree 1 file changed +46
-2
lines changed Expand file tree Collapse file tree 1 file changed +46
-2
lines changed Original file line number Diff line number Diff line change @@ -13,7 +13,8 @@ quickws是一个高性能的websocket库
13
13
## 内容
14
14
* [ 安装] ( #Installation )
15
15
* [ 例子] ( #example )
16
- * [服务端](#服务端)
16
+ * [标准库服务端](#标准库服务端)
17
+ * [gin服务端](#gin服务端)
17
18
* [客户端](#客户端)
18
19
* [ 配置函数] ( #配置函数 )
19
20
* [客户端配置参数](#客户端配置)
@@ -31,7 +32,7 @@ go get github.com/antlabs/quickws
31
32
```
32
33
33
34
## example
34
- ### 服务端
35
+ ### 标准库服务端
35
36
``` go
36
37
37
38
package main
@@ -83,6 +84,49 @@ func main() {
83
84
http.ListenAndServe (" :8080" , nil )
84
85
}
85
86
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
+ }
86
130
```
87
131
### 客户端
88
132
``` go
You can’t perform that action at this time.
0 commit comments