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