EventListener::__construct

(PECL event >= 1.2.6-beta)

EventListener::__constructСоздаёт нового слушателя соединения, связанного с базой события

Описание

publicEventListener::__construct(
    EventBase$base,
    callable$cb,
    mixed$data,
    int$flags,
    int$backlog,
    mixed$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) {
// Скопируйте все данные из входного буфера в выходной буфер

To Top