35 lines
		
	
	
		
			737 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			737 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var Buffer = require('safe-buffer').Buffer;
 | 
						|
 | 
						|
var Message = function() {
 | 
						|
  this.rsv1    = false;
 | 
						|
  this.rsv2    = false;
 | 
						|
  this.rsv3    = false;
 | 
						|
  this.opcode  = null;
 | 
						|
  this.length  = 0;
 | 
						|
  this._chunks = [];
 | 
						|
};
 | 
						|
 | 
						|
var instance = {
 | 
						|
  read: function() {
 | 
						|
    return this.data = this.data || Buffer.concat(this._chunks, this.length);
 | 
						|
  },
 | 
						|
 | 
						|
  pushFrame: function(frame) {
 | 
						|
    this.rsv1 = this.rsv1 || frame.rsv1;
 | 
						|
    this.rsv2 = this.rsv2 || frame.rsv2;
 | 
						|
    this.rsv3 = this.rsv3 || frame.rsv3;
 | 
						|
 | 
						|
    if (this.opcode === null) this.opcode = frame.opcode;
 | 
						|
 | 
						|
    this._chunks.push(frame.payload);
 | 
						|
    this.length += frame.length;
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
for (var key in instance)
 | 
						|
  Message.prototype[key] = instance[key];
 | 
						|
 | 
						|
module.exports = Message;
 |