0x4a52466c696e74 hace 1 año
padre
commit
023fe0373a
Se han modificado 1 ficheros con 19 adiciones y 17 borrados
  1. 19 17
      rest_websocket/socket.go

+ 19 - 17
rest_websocket/socket.go

@@ -25,7 +25,7 @@ func NewSocket(conn *websocket.Conn, pingEnable bool) *Socket {
 		pingEnable:  pingEnable,
 	}
 	ws.lastWrite.Store(time.Now().Unix())
-	go ws.read()
+	ws.read()
 	return ws
 }
 
@@ -66,26 +66,28 @@ func (s *Socket) read() {
 	}()
 	// создаем канал для обработки входящих сообщений
 	chIn := s.exec()
-	for {
-		// Read message from server
-		mType, r, err := s.conn.NextReader()
-		if err != nil {
-			s.cancel()
-			log.Println(err)
-			return
-		}
-		switch mType {
-		case websocket.TextMessage, websocket.BinaryMessage:
-			// Обработка текстового или бинарного сообщения
-			req, err := rest.ReadRequestStream(r)
+	go func() {
+		for {
+			// Read message from server
+			mType, r, err := s.conn.NextReader()
 			if err != nil {
-				log.Println("data error: ", err)
+				s.cancel()
+				log.Println(err)
 				return
 			}
-			log.Println("RESPONSE", req)
-			chIn <- req
+			switch mType {
+			case websocket.TextMessage, websocket.BinaryMessage:
+				// Обработка текстового или бинарного сообщения
+				req, err := rest.ReadRequestStream(r)
+				if err != nil {
+					log.Println("data error: ", err)
+					return
+				}
+				log.Println("RESPONSE", req)
+				chIn <- req
+			}
 		}
-	}
+	}()
 }
 
 // exec реализует обработку сообщений.