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();

ヒント: 匿名関数をコールバックとして使用するだけでなく、こちらを参照して他のコールバックの書き方を使用することもできます。