PHP语言的高性能网络通讯框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库链接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。
Swoole能够普遍应用于互联网、移动通讯、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole做为网络通讯框架,可使企业IT研发团队的效率大大提高,更加专一于开发创新产品。php
workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,即可以开发出本身的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。html
workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。 workerman自己是一个PHP多进程服务器框架,具备PHP进程管理以及socket通讯的模块,因此不依赖php-fpm、nginx或者apache等这些容器即可以独立运行。nginx
通常不多有用PHP作服务的, 可是若是你的已有业务逻辑都是PHP实现的, 而如今却须要基于已有的业务逻辑提供一套Socket服务, 怎么办?数据库
固然, 解决方法不少, 但最简单的办法, 仍是直接使用PHP作Socket服务.apache
而这样作要解决的问题有不少, 主要要解决的问题有以下几个:服务器
最近,我就基于PHP的pcntl扩展实现一个简单的提供Socket服务的框架. 取其名为Mpass(Multi-Processes Socket Server).网络
主要结构以下:多线程
我以前的文章PHP CLI模式下的多进程应用介绍过在PHP作服务的时候如何避免内存泄露, 因此基于此, 再加上PHP5之后的stream_socket_*系列API, 就完成了这一套框架.框架
至于Graceful restart, 经过pcntl_signal函数, 在接受到restart/shutdown信号时刻, 作关闭清理动做, 保证不会由于重启/关闭而使得正在执行的逻辑出错.
有相似需求的朋友, 能够借鉴.
项目地址&下载地址 : Mpass