onError
說明:
callback Worker::$onError
當(dāng)客戶端的連接上發(fā)生錯誤時觸發(fā)。
目前錯誤類型有
1、調(diào)用Connection::send由于客戶端連接斷開導(dǎo)致的失?。ňo接著會觸發(fā)onClose回調(diào)) (code:WORKERMAN_SEND_FAIL msg:client closed)
2、在觸發(fā)onBufferFull后(發(fā)送緩沖區(qū)已滿),仍然調(diào)用Connection::send,并且發(fā)送緩沖區(qū)仍然是滿的狀態(tài)導(dǎo)致發(fā)送失敗(不會觸發(fā)onClose回調(diào)) (code:WORKERMAN_SEND_FAIL msg:send buffer full and drop package)
3、使用AsyncTcpConnection異步連接失敗時(緊接著會觸發(fā)onClose回調(diào)) (code:WORKERMAN_CONNECT_FAIL msg:stream_socket_client返回的錯誤消息)
回調(diào)函數(shù)的參數(shù)
$connection
連接對象,即TcpConnection實例,用于操作客戶端連接,如發(fā)送數(shù)據(jù),關(guān)閉連接等
$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();
提示:除了使用匿名函數(shù)作為回調(diào),還可以參考這里使用其它回調(diào)寫法。