(PECL event >= 1.2.6-beta)
EventListener::__construct — Создаёт нового слушателя соединения, связанного с базой события
$base
,$cb
,$data
,$flags
,$backlog
,$target
Создаёт нового слушателя соединения, связанного с базой события.
base
База события.
cb
Callback-функция (callable), которая будет вызвана при получении соединения.
data
Пользовательские данные, которые будут передаваться в параметр cb
.
flags
Битовая маска из семейства констант EventListener::OPT_*
. Подробнее об этом рассказано в разделе «Константы EventListener».
backlog
Управляет максимальным количеством ожидающих подключений, которым сетевой стек должен разрешить в любое время ожидать в состоянии «ещё не принято». Дополнительную информацию смотрите в документации по функции listen
текущей системы. Если значение параметра backlog
отрицательно, модуль Libevent сам попытается выбрать наилучшее значение для параметра backlog
. Если значение равно нулю, модуль Event предполагает, что функция listen
уже вызвана на сокете target
.
target
Строка, ресурс сокета или поток, связанный с сокетом. Если параметр target
— строка, то строка будет разбираться как сетевой адрес. Она будет интерпретирована как путь сокета домена UNIX, если будет содержать префикс «unix:»
, например «unix:/tmp/my.sock»
.
Версия | Описание |
---|---|
PECL event 1.5.0 | Добавлена поддержка сокетов домена UNIX. |
Пример #1 Пример использования метода EventListener::__construct()
<?php
class MyListenerConnection {
private $bev, $base;
public function __destruct() {
$this->bev->free();
}
public function __construct($base, $fd) {
$this->base = $base;
$this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);
$this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
array($this, "echoEventCallback"), NULL);
if (!$this->bev->enable(Event::READ)) {
echo "Не удалось включить READ\n";
return;
}
}
public function echoReadCallback($bev, $ctx) {
// Скопируйте все данные из входного буфера в выходной буфер