| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -226,6 +226,11 @@ export default class Websock {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return new Uint8Array(this._sQ.buffer, 0, this._sQlen);
 | 
					 | 
					 | 
					 | 
					        return new Uint8Array(this._sQ.buffer, 0, this._sQlen);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // We want to move all the unread data to the start of the queue,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // e.g. compacting.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // The function also expands the receive que if needed, and for
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // performance reasons we combine these two actions to avoid
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // unneccessary copying.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    _expand_compact_rQ(min_fit) {
 | 
					 | 
					 | 
					 | 
					    _expand_compact_rQ(min_fit) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // if we're using less than 1/8th of the buffer even with the incoming bytes, compact in place
 | 
					 | 
					 | 
					 | 
					        // if we're using less than 1/8th of the buffer even with the incoming bytes, compact in place
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // instead of resizing
 | 
					 | 
					 | 
					 | 
					        // instead of resizing
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -262,8 +267,8 @@ export default class Websock {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this._rQi = 0;
 | 
					 | 
					 | 
					 | 
					        this._rQi = 0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    // push arraybuffer values onto the end of the receive que
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    _decode_message(data) {
 | 
					 | 
					 | 
					 | 
					    _decode_message(data) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        // push arraybuffer values onto the end
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        const u8 = new Uint8Array(data);
 | 
					 | 
					 | 
					 | 
					        const u8 = new Uint8Array(data);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (u8.length > this._rQbufferSize - this._rQlen) {
 | 
					 | 
					 | 
					 | 
					        if (u8.length > this._rQbufferSize - this._rQlen) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            this._expand_compact_rQ(u8.length);
 | 
					 | 
					 | 
					 | 
					            this._expand_compact_rQ(u8.length);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -276,8 +281,9 @@ export default class Websock {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        this._decode_message(e.data);
 | 
					 | 
					 | 
					 | 
					        this._decode_message(e.data);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (this.rQlen > 0) {
 | 
					 | 
					 | 
					 | 
					        if (this.rQlen > 0) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            this._eventHandlers.message();
 | 
					 | 
					 | 
					 | 
					            this._eventHandlers.message();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            // Compact the receive queue
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if (this._rQlen == this._rQi) {
 | 
					 | 
					 | 
					 | 
					            if (this._rQlen == this._rQi) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                // All data has now been processed, this means we
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                // can reset the receive queue.
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                this._rQlen = 0;
 | 
					 | 
					 | 
					 | 
					                this._rQlen = 0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                this._rQi = 0;
 | 
					 | 
					 | 
					 | 
					                this._rQi = 0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            }
 | 
					 | 
					 | 
					 | 
					            }
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |