onError

คำอธิบาย:

callback Worker::$onError

จะถูกเรียกเมื่อเกิดข้อผิดพลาดในการเชื่อมต่อของไคลเอนต์

ประเภทข้อผิดพลาดในปัจจุบันมีดังนี้

  1. การเรียกใช้ Connection::send เนื่องจากการเชื่อมต่อของไคลเอนต์ถูกตัดขาด (จะเรียก onClose callback ทันที) (code:WORKERMAN_SEND_FAIL msg:client closed)

  2. เมื่อเกิด onBufferFull (ส่งบัฟเฟอร์เต็ม) แล้วยังคงเรียกใช้ Connection::send และสถานะของส่งบัฟเฟอร์ยังคงเต็มอยู่ทำให้การส่งล้มเหลว (จะไม่เรียก onClose callback) (code:WORKERMAN_SEND_FAIL msg:send buffer full and drop package)

  3. ล้มเหลวในการเชื่อมต่อแบบ Asynchronous ด้วย AsyncTcpConnection (จะเรียก onClose callback ทันที) (code:WORKERMAN_CONNECT_FAIL msg:stream_socket_client ส่งกลับข้อความข้อผิดพลาด)

พารามิเตอร์ของฟังก์ชัน callback

$connection

อ็อบเจ็กต์การเชื่อมต่อ ซึ่งเป็น TcpConnection instance ใช้ในการจัดการการเชื่อมต่อของไคลเอนต์ เช่น ส่งข้อมูล, ปิดการเชื่อมต่อ เป็นต้น

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

คำแนะนำ: นอกจากการใช้ฟังก์ชันนิรนามเป็น callback แล้ว ยังสามารถ ดูที่นี่ เพื่อใช้วิธีการเขียน callback อื่น ๆ ได้อีกด้วย。