先上H5客户端的代码
- 与服务端websocket连接状态保持及信息展示;
- 界面输入内容并发送信息到websocket服务端;
- 接收到websocket的返回信息后回显在界面上;
import (
"gitee.com/johng/gf/g"
)
func main() {
s := g.Server()
s.BindHandler("/ws", func(r *ghttp.Request) {
for {
msgType, msg, err := ws.ReadMessage()
if err != nil {
}
if err = ws.WriteMessage(msgType, msg); err != nil {
return
}
}
s.SetPort(8199)
s.Run()
}
可以看到,服务端的代码相当简单,这里需要着重说明的是3个地方:
- ReadMessage & WriteMessage
读取消息以及写入消息对应的是websocket的数据读取以及写入操作(ReadMessage & WriteMessage
),需要注意的是这两个方法都有一个msgType
的变量,表示请求读取及写入数据的类型,常见的两种数据类型为:字符串数据或者二进制数据。在使用过程中,由于接口双方都会约定统一的数据格式,因此读取和写入的msgType
几乎都是一致的,所以在本示例中的返回消息时,数据类型参数直接使用的是读取到的。