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