您好,欢迎访问一九零五行业门户网

workerman介绍(附使用方法)

下面由workerman教程栏目给大家介绍workerman的概念及使用方法,希望对需要的朋友有所帮助!
workerman是一个高性能的php socket 服务器框架,workerman基于php多进程以及libevent事件轮询库,php开发者只要实现一两个接口,便可以开发出自己的网络应用,例如rpc服务、聊天室服务器、手机游戏服务器等。
workerman的目标是让php开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解php socket以及php多进程细节。
 workerman本身是一个php多进程服务器框架,具有php进程管理以及socket通信的模块,所以不依赖php-fpm、nginx或者apache等这些容器便可以独立运行。
php进程管理:类似于操作系统的进程管理。
socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
服务端开发示例websocket server
1、新建文件start.php
<?phpuse workerman\worker;require_once './workerman/autoloader.php';// 创建一个worker监听2346端口,使用websocket协议通讯$ws_worker = new worker("websocket://0.0.0.0:2346");// 启动4个进程对外提供服务$ws_worker->count = 4;// 当收到客户端发来的数据后返回hello $data给客户端$ws_worker->onmessage = function($connection, $data){    // 向客户端发送hello $data    $connection->send('hello ' . $data);};// 运行worker::runall();
2、启动服务:
php start.php start -d
使用以上的语句启动start.php   ,创建一个worker监听2346端口,使用websocket协议通讯并且启动四个进程对外服务,当收到请求时会传送数据给客户端。
3、查看workerman运行状态:
php start.php status
wokerman 的几大特性:
纯php开发
workerman完全使用php开发,使用workerman开发的应用程序不依赖php-fpm、apache、nginx这些容器就可以独立运行。 这使得php开发者开发、部署、调试应用程序非常方便。
支持php多进程
为了充分发挥服务器多cpu的性能,workerman默认支持多进程多任务。workerman开启一个主进程和多个子进程对外提供服务, 主进程负责监控子进程退出信号,并负责生成新的子进程去处理服务,这样做不仅提高了应用程序的性能,而且使得workerman更加稳定。
支持tcp、udp
workerman支持tcp和udp两种传输层协议,只需要更改配置的一个字段,便可以更换传输层协议,业务代码无需任何改动。
支持长连接
很多时候需要php应用程序要与客户端保持长连接,比如聊天室、游戏等,但是传统的php容器(apache、nginx、php-fpm)很难做到这一点。 使用workerman可以轻松使用php长连接。php单个进程可以支持几千甚至几万的并发连接,多进程则可支持数十万甚至上百万的并发连接。
支持各种应用层协议
接口上支持各种应用层协议,包括自定义协议。workerman默认支持的协议有http、websocket、以及简单的text文本协议。 同时workerman提供了通用的协议接口,开发者基于此接口便可以方便的开发出自己的协议。
支持高并发
workerman支持libevent事件轮询库(需要安装libevent扩展), 使用libevent在高并发时性能非常卓越,如果没有安装libevent则使用php内置的select相关系统调用。
更多workerman知识请关注workerman教程栏目。
以上就是workerman介绍(附使用方法)的详细内容。
其它类似信息

推荐信息