public function readFrame($data) { $frames = array(); while (!empty($data)) { $frame = WebSocketFrame::decode($data, $this->lastFrame); if ($frame->isReady()) { if (WebSocketOpcode::isControlFrame($frame->getType())) { $this->processControlFrame($frame); } else { $this->processMessageFrame($frame); } $this->lastFrame = null; } else { $this->lastFrame = $frame; } $frames[] = $frame; } return $frames; }