Repolode
swoole

swoole/swoole-src

为 PHP 提供事件驱动网络引擎与协程运行时的扩展,用于构建长驻的 TCP、UDP、HTTP 和 WebSocket 服务。

Star
18,927
Fork
3,147
未关闭 Issue
34
最近提交
8小时前

这是什么?

Swoole 是一个 PHP 扩展,其 C/C++ 核心提供事件循环、协程调度器、服务端、客户端以及协议实现。借助它,PHP 应用可以作为常驻网络服务运行,同时处理大量并发连接,而无需为每个请求启动独立的 PHP 进程。

扩展内置 TCP、UDP、Unix Socket、HTTP 和 WebSocket 服务端类,并提供用于访问上游 TCP 与 HTTP 服务的协程客户端。协程允许工作进程在某个任务等待受支持的 I/O 时执行其他任务。多个 Worker 进程可利用多个 CPU 核心,Task Worker 则用于处理不应阻塞请求的耗时任务。

Swoole 的 Worker 是长驻进程,全局变量和打开的资源可能跨请求保留,需要谨慎管理。协程提供的是并发而非自动的 CPU 并行。随库附带的 PHP 组件还包括 PDO、MySQLi、Redis 连接池,以及 WaitGroup、Barrier 等工具。

核心功能

  • 01基于事件驱动的 TCP、UDP 和 Unix Socket 服务端,支持多端口监听
  • 02基于请求与消息回调的 HTTP 和 WebSocket 服务端
  • 03协程调度器,提供 Channel 以及支持协程的 Socket 和系统 I/O
  • 04用于调用上游服务的协程 TCP、UDP 和 HTTP 客户端
  • 05运行时 Hook 可让部分阻塞型 PHP 函数在协程中挂起
  • 06Process、共享 Table 与原子操作,用于进程间协调

适用场景

  • 构建常驻内存、可处理大量请求的 HTTP API
  • 用 PHP 提供实时 WebSocket 消息服务
  • 用 PHP 实现自定义 TCP 或 UDP 协议网关
  • 在一次请求中并发调用多个上游服务

快速上手

  1. 1

    从 PECL 安装扩展

    pecl install swoole
  2. 2

    将 HTTP 服务器示例保存为 server.php

  3. 3

    用 PHP 运行服务器

    php server.php

使用前须知

  • 它是 PHP 扩展,需要安装 PHP 并在 php.ini 中加载该扩展。
  • 协程不提供 CPU 并行;CPU 密集型代码仍会占用其工作进程。
  • 工作进程长期运行,全局和静态状态可能跨请求保留,需要谨慎处理每个请求的数据。
  • master 分支面向 Swoole 6.3 和 PHP 8.2–8.5,生产环境应选择已发布的版本。

标签

常见问题

swoole-src 是什么?
为 PHP 提供事件驱动网络引擎与协程运行时的扩展,用于构建长驻的 TCP、UDP、HTTP 和 WebSocket 服务。 Swoole 是一个 PHP 扩展,其 C/C++ 核心提供事件循环、协程调度器、服务端、客户端以及协议实现。借助它,PHP 应用可以作为常驻网络服务运行,同时处理大量并发连接,而无需为每个请求启动独立的 PHP 进程。
swoole-src 可以免费使用吗?用的什么许可证?
swoole-src 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
swoole-src 还在维护吗?
活跃维护中。swoole-src 最近一次提交是在 2026年10月24日。
swoole-src 适合用来做什么?
构建常驻内存、可处理大量请求的 HTTP API 用 PHP 提供实时 WebSocket 消息服务 用 PHP 实现自定义 TCP 或 UDP 协议网关 在一次请求中并发调用多个上游服务
swoole-src 怎么安装和运行?
从 PECL 安装扩展: pecl install swoole 将 HTTP 服务器示例保存为 server.php 用 PHP 运行服务器: php server.php
在哪里获取 swoole-src?
源代码和安装说明在 GitHub 上:https://github.com/swoole/swoole-src

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目