以下代码为啥会存在线程安全的问题?

来源:4-3 封装Websocket

qq_文er不二_acijms

2022-02-02 19:48

func WsHandle(writer http.ResponseWriter, request *http.Request) {

   var (
      conn        *websocket.Conn
      err         error
      messageType int
      data        []byte
   )
   if conn, err = upgrader.Upgrade(writer, request, nil); err != nil {
      goto ERR
   }
   for {
      fmt.Printf("connection:  %v", conn)
      if messageType, data, err = conn.ReadMessage(); err != nil {
         goto ERR
      }
      switch messageType {

      case websocket.TextMessage:
         fmt.Println(string(data))
         if err = conn.WriteMessage(websocket.TextMessage, data); err != nil {
            goto ERR
         }
         break
      case websocket.BinaryMessage:
         break
      }
   }

ERR:
   conn.Close()
}


写回答 关注

0回答

还没有人回答问题,可以看看其他问题

GO实现千万级WebSocket消息推送服务

分布式高并发的弹幕架构揭秘,直播弹幕系统技术难点分析

21353 学习 · 56 问题

查看课程

相似问题