|  | @@ -81,31 +81,33 @@ func (ws *wsconn) Write(b []byte) (n int, err error) {
 | 
	
		
			
				|  |  |  	ws.wlock.Lock()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	if ws.connClosing {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		return 0, io.EOF
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	writeWs := func(b []byte) (n int, err error) {
 | 
	
		
			
				|  |  | -		wr, err := ws.wsc.NextWriter(websocket.BinaryMessage)
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			log.Warning("WS transport: ws connection NewFrameReader return " + err.Error())
 | 
	
		
			
				|  |  | -			ws.connClosing = true
 | 
	
		
			
				|  |  | -			ws.Close()
 | 
	
		
			
				|  |  | -			return 0, err
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		n, err = wr.Write(b)
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			return 0, err
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		err = wr.Close()
 | 
	
		
			
				|  |  | -		if err != nil {
 | 
	
		
			
				|  |  | -			return 0, err
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		return n, err
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	n, err = writeWs(b)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	n, err = ws.write(b)
 | 
	
		
			
				|  |  |  	ws.wlock.Unlock()
 | 
	
		
			
				|  |  |  	return n, err
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +func (ws *wsconn) write(b []byte) (n int, err error) {
 | 
	
		
			
				|  |  | +	wr, err := ws.wsc.NextWriter(websocket.BinaryMessage)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		log.Warning("WS transport: ws connection NewFrameReader return " + err.Error())
 | 
	
		
			
				|  |  | +		ws.connClosing = true
 | 
	
		
			
				|  |  | +		ws.Close()
 | 
	
		
			
				|  |  | +		return 0, err
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	n, err = wr.Write(b)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		return 0, err
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	err = wr.Close()
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		return 0, err
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	return n, err
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  func (ws *wsconn) Close() error {
 | 
	
		
			
				|  |  |  	ws.connClosing = true
 | 
	
		
			
				|  |  |  	ws.wlock.Lock()
 |