/**
  * Construct a frame from the current pending frame header and a data buffer
  *
  * @param \WebSocketServer\Socket\Buffer $buffer The data buffer
  *
  * @return \WebSocketServer\Socket\Frame The constructed frame
  */
 private function makeFrame(Buffer $buffer)
 {
     $data = $buffer->read($this->pendingFrameHeader['length']);
     if ($this->pendingFrameHeader['masked']) {
         $data = $this->unmaskData($data, $this->pendingFrameHeader['maskingKey']);
     }
     $frame = $this->frameFactory->create($this->pendingFrameHeader['fin'], $this->pendingFrameHeader['rsv'], $this->pendingFrameHeader['opcode'], $data);
     unset($this->pendingFrameHeader);
     return $frame;
 }