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();
提示:除了使用匿名函數作為回調,還可以參考這裡使用其他回調寫法。