
php中文网
php中文网提供大量免费、原创、高清的php视频教程,并定期举行公益php培训!可边学习边在线修改示例代码,查看执行效果!php从入门到精通,一站式php自学平台!
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) |
💡 举例:用 Workerman 写一个 WebSocket 聊天服务器,10 行代码即可实现广播消息。
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 | Workerman |
|---|---|---|
| 运行模式 | 请求-响应(每次请求重启脚本) | 常驻内存(进程长期运行) |
| 并发能力 | 低(依赖进程/线程池) | 高(异步非阻塞 + 多进程) |
| 适用场景 | Web 页面、REST API | 实时通信、长连接、推送 |
| 状态保持 | 无(无状态) | 可在内存中保存用户连接、数据 |
| 启动方式 | 通过 Web 服务器触发 | 命令行直接运行 php server.php start |
.php 网页文件(它不是 Web 服务器)💡 作者是中国人(walkor),文档和社区对中文用户非常友好。
Workerman = 用 PHP 写高性能网络服务器的瑞士军刀
- 如果你需要 实时、长连接、高并发,选它!
- 如果你只是做普通网站,继续用 Laravel / ThinkPHP + Nginx 就好。




