|  | @@ -81,31 +81,33 @@ func (ws *wsconn) Write(b []byte) (n int, err error) {
 | 
											
												
													
														|  |  	ws.wlock.Lock()
 |  |  	ws.wlock.Lock()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	if ws.connClosing {
 |  |  	if ws.connClosing {
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  		return 0, io.EOF
 |  |  		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()
 |  |  	ws.wlock.Unlock()
 | 
											
												
													
														|  |  	return n, err
 |  |  	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 {
 |  |  func (ws *wsconn) Close() error {
 | 
											
												
													
														|  |  	ws.connClosing = true
 |  |  	ws.connClosing = true
 | 
											
												
													
														|  |  	ws.wlock.Lock()
 |  |  	ws.wlock.Lock()
 |