WebSocket

В Websocketкласс реализует RFC 6455 сочетаемый с сервер WebSocket с обработкой событий.

Пространство имен: \CLI

Расположение файла:lib/cli/ws.php

Constructor

$server = new \CLI\WS( $addr, resource $ctx = NULL, $wait = 60 );

Первый аргумент $addr указывает, где сервер будет прослушивать соединения. Необязательный аргумент $ctx принимает контекст для socket'а, а аргумент $wait определяет значение тайм-аута.

Примеры

* Прослушивание на локальном устройстве без шифрования

$server = new CLI\WS('tcp://127.0.0.1:9000');

* Прослушивание всех IP-адресов с шифрованием

$server = new CLI\WS(
    'ssl://0.0.0.0:9000',
    stream_context_create([
        'ssl'=>[
            'local_cert' => '/path/to/.pem',
            'verify_peer' => FALSE,
            'verify_peer_name' => FALSE,
            'allow_self_signed' => TRUE
        ]
    ])
);
);

Методы

agents

Получите всех агентов с совпадающим URI.

Agent[] agents ( string $uri = NULL )

Возвращенные агенты можно фильтровать с помощью необязательного аргумента $uri.

events

Верните зарегистрированные обработчики событий.

array events( )

on

Привяжите функцию к событию.

\CLI\WS on ( string $event, callable $func )

Привязывает hook $func к событию $event и ее. Существующие bind'ы для $event заменяются на $func.

В разделе «Обработчики событий» перечислены все события.

kill

Правильно завершите работу сервера.

void kill ( )

Процесс выключения вызывает событие stop и завершает процесс PHP.

**run**

Запустите сервер и прослушайте соединения.

void run ( )

Метод run() ни возвращает значение , ни завершается. Вместо этого приложение закрывается по запросу (с помощью метода kill() или сигнала ОС) или при возникновении ошибки.

Event Handlers

Websocket предоставляет несколько событий для настройки. Обработчики событий регистрируются функцией on(), например, в следующем примере регистрируется анонимная функция для события start.

$server->on('start', function(){
    echo 'Server started';
});

start

Hook start выполняется при запуске сервера.

callable start ( \CLI\WS $server )

Обработчик событий получает сервер в качестве аргумента.

error

Hoo kerror выполняется , когда происходит ошибка.

callable error ( \CLI\WS $server )

Обработчик событий получает сервер в качестве аргумента.

stop

Hook stop выполняется , когда сервер (включая процессы PHP) закрывается.

callable stop ( \CLI\WS $server )

Обработчик событий получает сервер в качестве аргумента.

connect

Hook connect выполняется , когда клиент подключается к серверу.

callable connect ( \CLI\Agent $agent )

Обработчик событий получает в качестве аргумента агента нового клиента .

disconnect

Hook disconnect выполняется , когда клиент отключается от сервера.

callable disconnect ( \CLI\Agent $agent )

Обработчик событий получает в качестве аргумента отключающийся агент клиента . Агент уничтожается, как только обработчик завершает работу.

idle

Hook idle выполняется , когда клиент бездействует.

callable idle ( \CLI\Agent $agent )

Обработчик событий получает агент клиента в качестве аргумента.

receive

Hook receive выполняется , когда данные приложения приходят от клиента.

callable receive ( \CLI\Agent $agent, $op, $data )

Обработчик событий вызывается только для binary and text frames (см. RFC 6455, раздел-11.8 ). Следовательно, обработчик событий получает коды операций $op = WS::Binary( 0x01) и $op = WS::Text( 0x02).

Обработчик событий получает агент клиента в качестве первого аргумента. Код операции $op- WS::Binary или WS::Text. $data содержит полезные данные для конкретного приложения от клиента.

send

Hook send выполняется , когда данные приложения посылается клиенту.

callable send ( \CLI\Agent $agent, $op, $data )

Обработчик событий не вызывается для frame pong ( WS::Pong, 0x0a) и connection close( WS:Close, 0x08). Допустимые коды операций: WS::Binaryи WS::Text(см. RFC 6455, раздел-11.8 ).

Обработчик событий получает агент клиента в качестве первого аргумента. Код операции $op определяется пользователем (см. Раздел об Агенте ) и должен быть либо WS::Binary или WS::Text. $data содержит полезную нагрузку для конкретного приложения для клиента.

Агент

server

Получите сервер агента.

\CLI\WS server ( )

ID

Получите идентификатор socket'а агента.

string id ( )

socket

Получите ресурс socket'а агента.

resource socket ( )

verb

Получите HTTP-команду агента.

string verb ( )

uri

Получите HTTP URI агента.

string uri ( )

headers

Получите HTTP-заголовки агента.

string[] headers ( )
Печать/экспорт