/** * 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; }