PHP Conference Japan 2024

eio_get_event_stream

(PECL eio >= 0.3.1b)

eio_get_event_stream取得代表用於與 libeio 內部通訊之變數的串流

說明

eio_get_event_stream(): 混合

eio_get_event_stream() 取得代表用於與 libeio 內部通訊之變數的串流。可用於與其他 PECL 擴充套件提供的事件迴圈繫結,例如 libevent。

參數

此函數沒有參數。

回傳值

eio_get_event_stream() 成功時返回串流;否則返回 null

範例

範例 #1 使用 eio 搭配 libevent

<?php
function my_eio_poll($fd, $events, $arg) {
/* 可能需要一些 libevent 的規則設定 .. */
if (eio_nreqs()) {
eio_poll();
}
/* .. 以及這裡 */
}

function
my_res_cb($d, $r) {
var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* 其他 eio_* 呼叫放在這裡 ... */


// 設定事件旗標
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// 設定事件基礎
event_base_set($event, $base);

// 啟用事件
event_add($event);

// 啟動事件迴圈
event_base_loop($base);

/* 透過緩衝的 libevent 介面也可以做到相同的功能 */
?>

上述範例會輸出類似以下的內容

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"
新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top