workerman-json-rpc

PHP JSON RPC 框架
授权协议 GPL
开发语言 PHP
所属分类 Web应用开发、 JSON/BSON开发包
软件类型 开源软件
地区 国产
投 递 者 魏成济
操作系统 Linux
开源组织
适用人群 未知
 软件概览

一款使用PHP开发的高性能Json Rpc框架,框架使用TCP/IP协议直接传输json数据,系统集成统计监控模块,开发部署维护非常简。workerman-json-rpc 包含了服务端和客户端。

特性:

  • 使用PHP开发,与PHP紧密结合

  • PHP多进程,充分利用服务器多cpu资源

  • 支持libevent事件轮询库,支持高并发

  • 支持服务平滑重启,热升级程序,不影响用户

  • 支持PHP文件更新检测及自动加载

  • 使用JSON作为协议,开发调试非常方便

  • 集成统计监控模块,方便查看服务调用量、成功率、耗时等情况

  • 自带PHP客户端,支持异步并发调用,实现并行计算

  • 独立运行,不依赖nginx、php-fpm、apache等容器

  • 安装部署超级方便,下载解压后启动服务即可使用

启动界面:

自带的监控模块:


     服务端开发示例(例如User服务)

创建文件./applications/JsonRpc/Services/User.php
<?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开发的小蝌蚪即时交互游戏。 游戏交互很简单,点击屏幕小蝌蚪可以自由游动,其它玩家可以看到周围玩家的游动状态,并且可以即时聊天。     界面如图: