文档/启动应用程序/Workerman

Workerman

Workerman 是一个高效的工具,用于在 PHP 中构建异步服务器。它专为处理 WebSocket、HTTP 服务器、聊天应用、API 和其他网络应用程序而设计。

Workerman 在无需任何额外的扩展或依赖的情况下工作,因为它完全使用纯 PHP 实现。这使其成为跨平台且易于安装的解决方案。

值得注意的是,Workerman 同时支持 HTTPHTTPS,可处理 WebSocket,并能轻松扩展以同时处理大量连接。正因如此,它适用于创建实时应用程序,例如聊天系统、通知服务和流媒体服务器。

为了确保使用此技术启动的应用程序正常运行,必须开发支持异步模式。

在异步模式中,已加载的框架配置、类、初始化的服务和缓存的数据将被重用,从而显著加速性能。
但是,也存在一些特点,例如需要更加密切地监控内存泄漏并消除阻塞操作,许多熟悉的第三方库不支持异步模式。
在应用程序的逻辑部分存储状态变得不合适,尤其是当它与请求相关时。

框架的 RollbackInterface 旨在每次异步请求后重置状态

你可以通过 ComposerWorkerman 安装为一个标准的 PHP 库。详细信息请参阅 安装指南

Workerman 下,你需要修改 /public/index.php 文件,使 HLEB2 框架能够在循环中运行。
基本工作示例:

<?php
// File /public/index.php

use Workerman\Worker;
use 
Workerman\Connection\TcpConnection;
use 
Workerman\Protocols\Http\Response;

include 
__DIR__ "/../vendor/autoload.php";

// Framework initialization outside the loop.
$framework = new Hleb\HlebAsyncBootstrap(__DIR__);

$server = new Worker"http://127.0.0.1:2345");

// Set the number of processes used (for example, 4).
$server->count 4;

$server->onMessage = function (TcpConnection $connection$request) use ($framework) {
    
$res $framework->load($request)->getResponse();

    
$connection->send(new Response($res->getStatus(), $res->getHeaders(),  $res->getBody()));
};

Worker::runAll();

可以使用以下控制台命令启动 Workerman 服务器:

$php ./public/index.php start

根据指定设置,应用将可通过以下地址访问:http://127.0.0.1:2345

使用 Roadrunner 启动 Swoole 服务器

页面翻译:chatgpt 4-o
返回顶部