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