public function handleEvent()
{
while ($this->socket !== null) {
$events = $this->socket->getSockOpt(ZMQ::SOCKOPT_EVENTS);
$hasEvents = $events & ZMQ::POLL_IN || $events & ZMQ::POLL_OUT && $this->buffer->listening;
if (!$hasEvents) {
break;
}
if ($events & ZMQ::POLL_IN) {
$this->handleReadEvent();
}
if ($events & ZMQ::POLL_OUT && $this->buffer->listening) {
$this->buffer->handleWriteEvent();
}
}
}