onError
คำอธิบาย:
callback Worker::$onError
จะถูกเรียกเมื่อเกิดข้อผิดพลาดในการเชื่อมต่อของไคลเอนต์
ประเภทข้อผิดพลาดในปัจจุบันมีดังนี้
-
การเรียกใช้ Connection::send เนื่องจากการเชื่อมต่อของไคลเอนต์ถูกตัดขาด (จะเรียก onClose callback ทันที)
(code:WORKERMAN_SEND_FAIL msg:client closed) -
เมื่อเกิด onBufferFull (ส่งบัฟเฟอร์เต็ม) แล้วยังคงเรียกใช้ Connection::send และสถานะของส่งบัฟเฟอร์ยังคงเต็มอยู่ทำให้การส่งล้มเหลว (จะไม่เรียก onClose callback)
(code:WORKERMAN_SEND_FAIL msg:send buffer full and drop package) -
ล้มเหลวในการเชื่อมต่อแบบ 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 อื่น ๆ ได้อีกด้วย。