先上H5客户端的代码

  • 与服务端websocket连接状态保持及信息展示;
  • 界面输入内容并发送信息到websocket服务端;
  • 接收到websocket的返回信息后回显在界面上;
  1. import (
  2. "gitee.com/johng/gf/g"
  3. )
  4. func main() {
  5. s := g.Server()
  6. s.BindHandler("/ws", func(r *ghttp.Request) {
  7. for {
  8. msgType, msg, err := ws.ReadMessage()
  9. if err != nil {
  10. }
  11. if err = ws.WriteMessage(msgType, msg); err != nil {
  12. return
  13. }
  14. }
  15. s.SetPort(8199)
  16. s.Run()
  17. }

可以看到,服务端的代码相当简单,这里需要着重说明的是3个地方:

  1. ReadMessage & WriteMessage
    读取消息以及写入消息对应的是websocket的数据读取以及写入操作(ReadMessage & WriteMessage),需要注意的是这两个方法都有一个msgType的变量,表示请求读取及写入数据的类型,常见的两种数据类型为:字符串数据或者二进制数据。在使用过程中,由于接口双方都会约定统一的数据格式,因此读取和写入的msgType几乎都是一致的,所以在本示例中的返回消息时,数据类型参数直接使用的是读取到的。