函數(shù)名:EventHttpRequest::closeConnection()
適用版本:Event擴(kuò)展版本為2.0.0以上
用法:EventHttpRequest::closeConnection()函數(shù)用于關(guān)閉EventHttpRequest對(duì)象所關(guān)聯(lián)的網(wǎng)絡(luò)連接。
示例:
<?php
$base = new EventBase();
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '127.0.0.1', 8080);
socket_listen($socket);
// 創(chuàng)建一個(gè)Event對(duì)象,監(jiān)聽$socket上的連接
$event = new Event($base, $socket, Event::READ | Event::PERSIST, function ($fd, $events, $arg) {
$base = $arg['base'];
$socket = $arg['socket'];
// 接受連接
$client = socket_accept($socket);
// 創(chuàng)建EventBufferEvent對(duì)象
$ev_buff = new EventBufferEvent($base, $client, EventBufferEvent::OPT_CLOSE_ON_FREE);
// 創(chuàng)建EventHttpRequest對(duì)象
$http_req = new EventHttpRequest($base, $ev_buff);
// 處理請(qǐng)求
$http_req->setCallback(function ($req, $arg) {
// 處理請(qǐng)求邏輯...
// 關(guān)閉連接
$req->closeConnection();
}, ['req' => $http_req]);
// 添加事件
$http_req->add();
});
$event->add();
$base->loop();
在以上示例中,我們創(chuàng)建了一個(gè)基于socket
的服務(wù)器,在接受到客戶端連接時(shí)創(chuàng)建了一個(gè)EventHttpRequest
對(duì)象來(lái)處理HTTP請(qǐng)求。在處理完成請(qǐng)求后,通過(guò)調(diào)用closeConnection()
來(lái)關(guān)閉客戶端連接。