一款使用PHP开发的高性能Json Rpc框架,框架使用TCP/IP协议直接传输json数据,系统集成统计监控模块,开发部署维护非常简。workerman-json-rpc 包含了服务端和客户端。
特性:
使用PHP开发,与PHP紧密结合
PHP多进程,充分利用服务器多cpu资源
支持libevent事件轮询库,支持高并发
支持服务平滑重启,热升级程序,不影响用户
支持PHP文件更新检测及自动加载
使用JSON作为协议,开发调试非常方便
集成统计监控模块,方便查看服务调用量、成功率、耗时等情况
自带PHP客户端,支持异步并发调用,实现并行计算
独立运行,不依赖nginx、php-fpm、apache等容器
安装部署超级方便,下载解压后启动服务即可使用
启动界面:
自带的监控模块:
服务端开发示例(例如User服务)
<?php class User { public static function getInfoByUid($uid) { // .... } public static function getEmail($uid) { // ... } }
客户端使用示例
客户端同步调用和异步调用
// 配置服务端列表,站点入口统一配置一次即可 RpcClient::config(array( 'tcp://127.0.0.1:2015', 'tcp://127.0.0.1:2015' )); // 获取实例 $user_client = RpcClient::instance('User'); // ====同步调用方法示例==== $ret_sync = $user_client->getInfoByUid($uid); // ==== 异步调用方法示例 ==== // 异步调用User::getInfoByUid方法 $user_client->asend_getInfoByUid($uid); // 异步调用User::getEmail方法 $user_client->asend_getEmail($uid); 这里是其它的业务代码,此时服务端User::getInfoByUid、User::getEmail 两个方法正在并发执行,调用者此时可以继续做其它业务逻辑 .........业务逻辑........... .........业务逻辑........... // 需要数据的时候异步获取数据 $ret_async1 = $user_client->arecv_getEmail($uid); $ret_async2 = $user_client->arecv_getInfoByUid($uid);
Workerman,高性能socket服务框架 Workerman是什么? Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。 Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版
workerman workerman 是一个高性能的PHP socket服务框架,开发者可以在这个框架下开发各种网络应用,例如Rpc服务、聊天室、游戏等。 workerman 具有以下特性 多进程 支持TCP/UDP 支持各种应用层协议 使用libevent事件轮询库,支持高并发 支持文件更新检测及自动加载 支持服务平滑重启 支持telnet远程控制及监控 支持异常监控及告警 支持长连接 支持以
workerman workerman 是一个高性能的PHP socket服务框架,开发者可以在这个框架下开发各种网络应用,例如Rpc服务、聊天室、游戏等。 workerman 具有以下特性 多进程 支持TCP/UDP 支持各种应用层协议 使用libevent事件轮询库,支持高并发 支持文件更新检测及自动加载 支持服务平滑重启 支持telnet远程控制及监控 支持异常监控及告警 支持长连接 支持以
workerman workerman 是一个高性能的PHP socket服务框架,开发者可以在这个框架下开发各种网络应用,例如Rpc服务、聊天室、游戏等。 workerman 具有以下特性 多进程 支持TCP/UDP 支持各种应用层协议 使用libevent事件轮询库,支持高并发 支持文件更新检测及自动加载 支持服务平滑重启 支持telnet远程控制及监控 支持异常监控及告警 支持长连接 支持以
Workerman,高性能socket服务框架 Workerman是什么? Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。 Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版
什么是平滑重启? 平滑重启不同于普通的重启,平滑重启可以做到在不影响用户的情况下重启服务,以便重新载入PHP程序,完成业务代码更新。 平滑重启一般应用于业务更新或者版本发布过程中,能够避免因为代码发布重启服务导致的暂时性服务不可用的影响。 注意:只有子进程运行过程中载入的文件支持reload,主进程载入的文件不支持reload。或者说Worker::runAll执行完后workerman运行过程中
前期准备: yum -y update wget http://mirrors.cnnic.cn/apache/thrift/0.9.0/thrift-0.9.0.tar.gz yum -y groupinstall "Development Tools" wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz tar xvf auto
1. 从 连接socket的 接收缓冲区中copy数据,怎么copy? $buffer = @\fread($socket, self::READ_BUFFER_SIZE); // 65535 每次读取最多65535字节,放到用户程序的缓冲区(这里指的是php tcpConnection对象的_recvBuffer 属性) 每读一次就尝试解析 用户程序的缓冲区(_recvBuffer) ,使用
workerman地址:http://www.workerman.net/ 下载对应的版本,演示下载的是linux版本。 解压放到thinkphp的模板目录里,目录结构: |~Application/ | |+Cli/ | |+Common/ | |+Home/ | |+Runtime/ | |~Workerman/ | | |+Connection/ | | |+Events/ | | |+Li
workerman workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。 workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程
Workerman是什么? Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。 Workerman不是重复造轮子,它不是一个MVC框架,而是一个更底层更通用的socket服务框架,你可以用它开发tcp代理、梯子代理、做游戏服务器、邮件服务器、ftp服务器、甚至开发一个php版本的redis、php版本的数据库、php版本的nginx、php版本的php-fpm等等。
Workerman Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
Workerman 是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、游戏服务器等。 Workerman 的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。 worker
workerman-chat是一个以workerman作为服务器容器,使用PHP开发的基于Websocket协议的一个可分布式部署的聊天室框架。 workerman-chat采用gateway workers 进程模型。gateway只负责网络IO,全异步非阻塞,每个gateway进程都可以同时接受上万客户端连接。 workers采用的是PHP开发者所熟悉的同步模型,并提供了开发者基本的接口 on
它是什么 workerman-pusher 是基于 workerman 开发的一个异步消息推送器: 它能够模拟 WEB 后台单向异步推送业务通知。 Animation 环境要求 >= PHP 5.3 A POSIX compatible operating system (Linux, OSX, BSD) POSIX extensions for PHP PCNTL extensions for
webman 是一款基于 workerman 开发的高性能HTTP服务框架。webman 用于替代传统的 php-fpm 架构,提供超高性能可扩展的 HTTP 服务。你可以用 webman 开发网站,也可以开发 HTTP 接口或者微服务。 除此之外,webman 还支持自定义进程,可以做 workerman 能做的任何事情,例如 websocket 服务、物联网、游戏、TCP服务、UDP 服务、u
workerman-todpole是一个以workerman作为后端服务器(提供HTTP Web服务和WebSocket服务),后端采用纯PHP开发,前端采用HTML5+WebSocket开发的小蝌蚪即时交互游戏。 游戏交互很简单,点击屏幕小蝌蚪可以自由游动,其它玩家可以看到周围玩家的游动状态,并且可以即时聊天。 界面如图: