查詢

EventBufferEvent::enable()函式—用法及示例

「 啟用事件緩衝事件物件 」


函式名稱:EventBufferEvent::enable()

函式描述:啟用事件緩衝事件物件

適用版本:Event擴充套件版本 >= 1.2.0

用法:bool EventBufferEvent::enable(int $events)

引數:

  • $events: 需要啟用的事件型別。可以使用EventBufferEvent類中定義的常量,或透過按位或運算子組合多個事件型別。常用的事件型別有:
    • EventBufferEvent::READ:可讀事件
    • EventBufferEvent::WRITE:可寫事件

返回值:成功啟用返回 true,否則返回 false。

示例:

// 建立事件緩衝事件物件
$base = new EventBase();
$socket = stream_socket_server('tcp://localhost:8000', $errno, $errstr);
$listener = new EventListener($base, function($listener, $fd) use ($base){
    // 建立事件緩衝事件物件並繫結檔案描述符
    $bufferEvent = new EventBufferEvent($base, $fd);
  
    // 啟用可讀事件
    if ($bufferEvent->enable(EventBufferEvent::READ)) {
        echo "可讀事件已啟用\n";
    } else {
        echo "啟用可讀事件失敗\n";
    }
    
    // 啟用可寫事件
    if ($bufferEvent->enable(EventBufferEvent::WRITE)) {
        echo "可寫事件已啟用\n";
    } else {
        echo "啟用可寫事件失敗\n";
    }
  
    $bufferEvent->free();
}, $base, EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1, $socket);
$base->dispatch();

上述示例中,我們建立了一個基於 libevent 的伺服器,並利用EventBufferEvent類來處理連線的緩衝事件。在建立並繫結檔案描述符後,我們透過呼叫enable()函式來啟用可讀和可寫事件。如果成功啟用事件,會分別輸出"可讀事件已啟用"和"可寫事件已啟用",否則會輸出"啟用可讀事件失敗"或"啟用可寫事件失敗"。

補充糾錯
熱門PHP函式
分享連結