要使用Swoole协程,首先确保已经安装了Swoole扩展。接下来,我将向您展示如何在PHP中使用Swoole协程启动一个简单的Web服务器。
创建一个新的PHP文件,例如swoole_coroutine_server.php
。
在文件中编写以下代码:
<?php
// 引入Swoole命名空间
use Swoole\Coroutine;
use Swoole\Http\Server;
// 定义一个处理请求的异步函数
function handleRequest($request, $response)
{
$response->header("Content-Type", "text/plain");
$response->end("Hello World from Swoole Coroutine!\n");
}
// 启动一个协程HTTP服务器
$server = new Server("127.0.0.1:9501", 9501);
// 监听WebSocket连接
$server->on('WebSocket', function (Server $server, $frame) {
$fd = $frame->fd;
echo "Client {$frame->fd} connected.\n";
// 启动一个协程来处理WebSocket消息
Coroutine::create(function () use ($server, $fd) {
while ($server->push($fd, "Hello from Swoole Coroutine WebSocket!") > 0) {
usleep(100000); // 每100ms发送一条消息
}
});
});
// 启动服务器并监听请求
$server->start();
php swoole_coroutine_server.php
现在,您的服务器已经在127.0.0.1:9501
上启动,并使用Swoole协程处理请求。您可以使用浏览器或其他HTTP客户端访问该地址,查看服务器响应。同时,服务器还会监听WebSocket连接,并在收到连接时发送一条消息。