函式名:EventHttpRequest::closeConnection()
適用版本:Event擴充套件版本為2.0.0以上
用法:EventHttpRequest::closeConnection()函式用於關閉EventHttpRequest物件所關聯的網路連線。
示例:
<?php
$base = new EventBase();
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '127.0.0.1', 8080);
socket_listen($socket);
// 建立一個Event物件,監聽$socket上的連線
$event = new Event($base, $socket, Event::READ | Event::PERSIST, function ($fd, $events, $arg) {
$base = $arg['base'];
$socket = $arg['socket'];
// 接受連線
$client = socket_accept($socket);
// 建立EventBufferEvent物件
$ev_buff = new EventBufferEvent($base, $client, EventBufferEvent::OPT_CLOSE_ON_FREE);
// 建立EventHttpRequest物件
$http_req = new EventHttpRequest($base, $ev_buff);
// 處理請求
$http_req->setCallback(function ($req, $arg) {
// 處理請求邏輯...
// 關閉連線
$req->closeConnection();
}, ['req' => $http_req]);
// 新增事件
$http_req->add();
});
$event->add();
$base->loop();
在以上示例中,我們建立了一個基於socket
的伺服器,在接受到客戶端連線時建立了一個EventHttpRequest
物件來處理HTTP請求。在處理完成請求後,透過呼叫closeConnection()
來關閉客戶端連線。