Workerman 是一个高性能、纯 PHP 编写的 socket 服务器框架,用于开发 TCP/UDP/HTTP/WebSocket 等网络服务,无需依赖 Apache、Nginx 或 PHP-FPM。
它的核心特点是:常驻内存、异步非阻塞、多进程模型,适用于构建实时通信、聊天系统、游戏后端、物联网(IoT)网关等高并发场景。
✅ 核心特性
| 特性 | 说明 |
|---|---|
| 纯 PHP 实现 | 不依赖 C 扩展(但可配合 event/libevent 提升性能) |
| 常驻内存(Long Running) | 启动后 PHP 进程不退出,避免重复加载脚本,极大提升性能 |
| 多进程模型 | 自动 fork 多个 Worker 进程,利用多核 CPU |
| 支持多种协议 | 内置 HTTP、WebSocket、TCP、UDP、Text 协议,也支持自定义协议 |
| 跨平台 | 支持 Linux / macOS / Windows(Windows 下功能受限) |
| 零第三方依赖 | 只需 PHP CLI 环境(建议 ≥ 7.0) |
🌐 典型应用场景
- WebSocket 实时聊天室
- 在线客服系统
- 股票/行情推送服务
- 游戏服务器(如房间匹配、实时同步)
- IoT 设备接入网关
- 替代传统 PHP-FPM 做高性能 API 服务
💡 举例:用 Workerman 写一个 WebSocket 聊天服务器,10 行代码即可实现广播消息。
🔧 简单示例:WebSocket 服务器
1<?php
2require_once __DIR__ . '/vendor/autoload.php';
3
4use Workerman\Worker;
5
6// 创建一个 WebSocket 服务器
7$ws_worker = new Worker("websocket://0.0.0.0:2346");
8
9// 当有客户端连接时
10$ws_worker->onConnect = function ($connection) {
11 echo "New connection\n";
12};
13
14// 当收到消息时
15$ws_worker->onMessage = function ($connection, $data) {
16 // 广播给所有客户端
17 foreach ($ws_worker->connections as $conn) {
18 $conn->send($data);
19 }
20};
21
22// 运行 worker
23Worker::runAll();
启动命令:
1php start.php start
前端用 JS 即可连接:
1const ws = new WebSocket('ws://127.0.0.1:2346');
2ws.onmessage = (e) => console.log(e.data);
3ws.send('Hello Workerman!');
⚙️ 与传统 PHP(Apache/Nginx + PHP-FPM)的区别
| 对比项 | 传统 PHP | Workerman |
|---|---|---|
| 运行模式 | 请求-响应(每次请求重启脚本) | 常驻内存(进程长期运行) |
| 并发能力 | 低(依赖进程/线程池) | 高(异步非阻塞 + 多进程) |
| 适用场景 | Web 页面、REST API | 实时通信、长连接、推送 |
| 状态保持 | 无(无状态) | 可在内存中保存用户连接、数据 |
| 启动方式 | 通过 Web 服务器触发 | 命令行直接运行 php server.php start |
📦 生态工具
- GatewayWorker:基于 Workerman 的分布式通讯框架,适合大型聊天系统
- Webman:基于 Workerman 的高性能 HTTP 框架(类似 Laravel 但为常驻内存设计)
- PHPSocket.IO:实现实时双向通信(兼容 Socket.IO 客户端)
⚠️ 注意事项
- 不能直接处理
.php网页文件(它不是 Web 服务器) - 全局变量会“污染”(因为进程常驻,变量不会自动销毁)
- 数据库连接需持久化或重连机制
- 不适合传统 CMS(如 WordPress)
🌍 官网 & 资源
- 官网:https://www.workerman.net
- GitHub:https://github.com/walkor/Workerman
- 中文文档:https://www.workerman.net/doc
💡 作者是中国人(walkor),文档和社区对中文用户非常友好。
🐺 总结
Workerman = 用 PHP 写高性能网络服务器的瑞士军刀
- 如果你需要 实时、长连接、高并发,选它!
- 如果你只是做普通网站,继续用 Laravel / ThinkPHP + Nginx 就好。
数据统计
相关导航

Swoole
Swoole: PHP的异步、并行、高性能网络通信引擎,支持TCP长连接,Websocket,Mqtt等协议。广泛用于手机app、手游服务端、网络游戏服务器、聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。

PHP官方手册
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.

LearnKu-laravel
专为终身学习者定制的编程知识社区

非凡X/tp8源码笔记
深入thinkphp8框架源码,让你使用起来更加如鱼得水

php中文网
php中文网提供大量免费、原创、高清的php视频教程,并定期举行公益php培训!可边学习边在线修改示例代码,查看执行效果!php从入门到精通,一站式php自学平台!

Laravel文档备用
Laravel - 面向 Web Artisan 的 PHP 框架 - Laravel 框架

PHP Sandbox
使用此工具,您可以在浏览器中在线运行各种 400 多种 PHP 版本的代码。
