函式名稱: EventHttpConnection::setCloseCallback()
適用版本: PHP 5 >= 5.4.0, PECL event >= 1.8.0
用法: void EventHttpConnection::setCloseCallback ( callable $callback [, string $data ] )
說明: EventHttpConnection::setCloseCallback() 方法用於設定在連線關閉時呼叫的回撥函式。
引數:
- $callback: 一個可呼叫的回撥函式,當連線關閉時會呼叫該函式。這個回撥函式應該接受兩個引數: 連線資源和使用者自定義資料。
- $data (可選): 使用者自定義的資料,會作為第二個引數傳遞給回撥函式。如果不提供該引數,則回撥函式只會接受連線資源作為引數。
示例: 下面是一個示例程式碼,展示瞭如何使用EventHttpConnection::setCloseCallback() 方法設定連線關閉時的回撥函式。
// 建立EventBase物件和EventHttp物件
$base = new EventBase();
$http = new EventHttp($base);
// 建立EventHttpConnection物件,指定連線的監聽主機和埠
$connection = new EventHttpConnection($base, null, "127.0.0.1", 80);
// 設定連線關閉時的回撥函式
$connection->setCloseCallback(function ($connection, $data) {
echo "連線關閉了!\n";
var_dump($data); // 列印使用者自定義的資料
}, "Hello, world!");
// 關聯EventHttp物件和EventHttpConnection物件
$http->setConnection($connection);
// 檢測連線狀態並進行事件迴圈
$base->loop();
在上面的示例中,我們首先建立了一個EventBase物件和一個EventHttp物件。然後,用指定的主機和埠建立了一個EventHttpConnection物件。接下來,我們使用setCloseCallback()方法設定連線關閉時的回撥函式,並傳遞了一個字串 "Hello, world!" 作為使用者自定義資料。最後,透過呼叫EventBase物件的loop()方法,開始事件迴圈。當連線關閉時,我們的回撥函式會被呼叫並列印一條訊息,同時輸出使用者自定義的資料。