workerman开发文档

一、workerman是什么

workerman是一个高性能的PHP Socket服务器框架,它类似PHP-FPM,提供进程控制及socket通讯功能,区别是PHP-FPM是以FAST-CGI的协议对外提供服务的。同样workerman也提供进程控制和socket通讯功能,但是workerman可以支持各种协议(包括自定义协议),并且支持长链接,支持进程内全局对象资源等永久保持等特性。
二、workerman能做什么

虽然workerman可以替代Nginx PHP-FPM的架构,成为Webserver的角色,并且性能比Nginx PHP-FPM高,但是这并不是workerman的专长,也不推荐开发者把workerman用作webserver,因为PHP的WebServer市场上已经很成熟了,我们没必要重复造轮子。所以workerman把精力花在传统WebServer无法胜任的角色上,例如非HTTP协议的应用、长链接应用、UDP应用。
举个例子,即时聊天如果使用websever实现一般是HTTP协议的ajax轮询等方式,此方案弊端很多,例如无法支持高并发(因为每个ajax请求都会占用一个php进程),空轮询对服务端造成很高的负载,每次都要传输很大的HTTP头造成带宽浪费,单向传输,及时性得不到保证等。如果使用workerman,则可以在TCP基础上通过一个更简单的协议实现更高效的双向传输通道,workerman每个进程都可以hold住上万的链接,通过Epoll能够避免轮询的开销,能够将服务器性能发挥到极致。
三、workerman目录结构

../
├── applications
└── workerman


workerman有两个目录
1、workerman目录是workerman框架的核心代码,包含了启动脚本及workerman配置等。你可以把它看作PHP-FPM。
2、applications目录存放的是应用程序,例如应用框架 应用入口文件(类似index.php)。你可以把它目录看作是一个项目。

workerman与applications是如何交互的

四、如何使用workerman
已邀请:

要回复问题请先登录注册