高性能PHP应用容器介绍Workerman是一个开源的、纯PHP开发的高性能PHP应用容器。你可以用它来开发tcp代理,天梯代理,游戏服务器,邮件服务器,ftp服务器,甚至可以开发出php版的redis,php版的数据库,php版的nginx,php版的php-fpm等等。可以说是PHP领域的一次革新,让开发者彻底摆脱了PHP只能做WEB的束缚。其实Workerman类似于一个PHP版的nginx,核心也是多进程+Epoll+非阻塞IO。Workerman每个进程可以维护数万个并发连接。由于常驻内存,不依赖Apache、nginx、php-fpm等容器,具有超高性能。同时支持TCP、UDP、UNIXSOCKET、长连接、Websocket、HTTP、WSS、HTTPS等通信协议及各种自定义协议。它有许多高性能组件,例如定时器、异步套接字客户端、异步Redis、异步Http和异步消息队列。安装运行设置阿里云镜像composerconfig-grepo.packagistcomposerhttps://mirrors.aliyun.com/co...installworkermancomposerrequireworkerman/workermanstartdebugmodephpstart.phpstartdaemonmodephpstart.phpstart-dstopsphpstart.phpstoprestartsphpstart.phprestart平滑重启:与普通重启不同,平滑重启可以在不影响用户的情况下重启服务,完成业务代码更新。phpstart.phpreload查看状态phpstart.phpstatus查看连接状态phpstart.phpconnectionsHttpserverworkerman提供get、post、cookie、session等组件,可以方便的进行http相关操作。count=4;//接收请求$http_worker->onMessage=function($connection,$request){#获取整个get数组$request->get();#Get获取数组的某个值$name=$request->get('name');#将hello发送回浏览器客户端$connection->send("hello");};//运行工人Worker::runAll();启动后,在浏览器中访问http://127.0.0.1:2345就会看到HelloWorld,一个基本的http服务器就完成了。websocket服务器服务器onConnect=function($connection){echo"新建连接\n";};//客户端通过连接发送数据时触发$ws_worker->onMessage=function($connection,$data){//向客户端发送消息$connection->send('msg:'.$data);};//客户端与Workerman断开连接时触发的回调$ws_worker->onClose=function($connection){echo"Connectionclosed\n";};//运行工人Worker::runAll();客户端varws=newWebSocket("ws://localhost:2346");ws.onopen=function(){//WebSocket连接上,使用send()方法发送数据ws.send("customer");};ws.onmessage=function(evt){console.log("接收数据...");console.log(evt.data)};ws.onclose=function(){//关闭websocketconsole.log("Theconnectionisclosed...");};打开控制台,可以看到服务器发送的msg:customer,一个简单的聊天服务器就搭建好了。TimerTimerTimer::add(float$time_interval,callable$callback[$args=array(),bool$persistent=rue])time_interval:多久执行一次,单位秒,支持小数,可以精确到0.001,即精确到毫秒级别。callback:回调函数args:回调函数的参数,必须是数组,数组元素为参数值。示例count=1;$task->onWorkerStart=function(Worker$task){//每2.5秒执行一次$time_interval=2.5;Timer::add($time_interval,function(){echo"timerrun\n";});};//运行工人Worker::runAll();定时任务示例定时器可以很方便的完成定时任务的功能,比如结合ThinkPHP框架的事件,通过事件触发自动收货、取消订单、统计等功能,下面是。创建自定义命令phpthinkmake:commandcrmeb\command\Timer定时器配置config/console.php文件项目根目录执行:phpthinktimerstart源码附件已打包上传至百度云,可自行下载~链接:https://pan.baidu.com/s/14G-b...提取码:yu27百度云链接不稳定,随时可能失效,请及时保存。如果百度云链接失效请留言告诉我,我看到后会及时更新~开源地址码云地址:http://github.crmeb.net/u/defuGithub地址:http://github.crmeb。网/你/得福
