onError

Описание:

callback Worker::$onError

Вызывается при возникновении ошибки на соединении клиента.

В настоящее время есть следующие типы ошибок:

  1. Ошибка, вызванная вызовом Connection::send из-за разрыва соединения клиента (сразу после этого будет вызван обратный вызов onClose) (code:WORKERMAN_SEND_FAIL msg:client closed)

  2. После вызова onBufferFull (когда буфер отправки заполнен) и повторной попытки вызова Connection::send, если буфер отправки по-прежнему заполнен, что приводит к ошибке отправки (обратный вызов onClose не будет вызван) (code:WORKERMAN_SEND_FAIL msg:send buffer full and drop package)

  3. Ошибка при неудачном асинхронном соединении с помощью AsyncTcpConnection (сразу после этого будет вызван обратный вызов onClose) (code:WORKERMAN_CONNECT_FAIL msg:ошибка, возвращаемая stream_socket_client)

Параметры обратного вызова

$connection

Объект соединения, то есть экземпляр TcpConnection, используемый для управления соединением клиента, например, для отправки данных, закрытия соединения и т.д.

$code

Код ошибки

$msg

Сообщение об ошибке

Пример

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onError = function(TcpConnection $connection, $code, $msg)
{
    echo "error $code $msg\n";
};
// Запуск worker
Worker::runAll();

Подсказка: помимо использования анонимных функций в качестве обратного вызова, вы также можете ознакомиться здесь с другими способами написания обратных вызовов.