/** * @param SocketInterface $client * @param string $data */ public function onData(SocketInterface $client, $data) { $messages = []; $resID = $client->getResourceId(); $buffer = ''; if (isset($this->frameBuffer[$resID])) { $buffer = $this->frameBuffer[$resID]; unset($this->frameBuffer[$resID]); } $buffer = preg_replace_callback("#(.*?)\r\n#si", function ($matches) use(&$messages) { $messages[] = $matches[1]; return ''; }, $buffer . $data); if ($buffer !== '') { $this->frameBuffer[$resID] = $buffer; unset($buffer); } foreach ($messages as $message) { if ($message !== '') { $this->onMessage($client, $message); } } }
/** * @override * @inheritDoc */ public function getResourceId() { return $this->conn->getResourceId(); }