onError
Giới thiệu:
callback Worker::$onError
Khi xảy ra lỗi trên kết nối của khách hàng.
Hiện tại, các loại lỗi có:
1、Lỗi do gọi Connection::send vì kết nối của khách hàng đã bị ngắt (ngay sau đó sẽ kích hoạt callback onClose) (code:WORKERMAN_SEND_FAIL msg:client closed)
2、Lỗi khi gọi Connection::send sau khi đã kích hoạt onBufferFull (bộ đệm gửi đã đầy), và bộ đệm gửi vẫn ở trạng thái đầy dẫn đến lỗi gửi (sẽ không kích hoạt callback onClose) (code:WORKERMAN_SEND_FAIL msg:send buffer full and drop package)
3、Lỗi khi kết nối bất đồng bộ bằng AsyncTcpConnection không thành công (ngay sau đó sẽ kích hoạt callback onClose) (code:WORKERMAN_CONNECT_FAIL msg:stream_socket_client trả về thông báo lỗi)
Tham số của hàm callback
$connection
Đối tượng kết nối, tức là Instancce TcpConnection, được sử dụng để thao tác kết nối của khách hàng, như gửi dữ liệu, đóng kết nối v.v.
$code
Mã lỗi
$msg
Thông báo lỗi
Ví dụ
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";
};
// Chạy worker
Worker::runAll();
Lưu ý: Ngoài việc sử dụng hàm ẩn danh làm callback, bạn cũng có thể tham khảo ở đây để sử dụng các cách viết callback khác.