| '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; |