PHPackages                             laocc/rpc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. laocc/rpc

ActiveLibrary[Framework](/categories/framework)

laocc/rpc
=========

PHP RPC Framework by ESP

1.0.17(5mo ago)11061PHPPHP &gt;=8.1

Since Nov 30Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/laocc/rpc)[ Packagist](https://packagist.org/packages/laocc/rpc)[ RSS](/packages/laocc-rpc/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (18)Used By (0)

RPC (Remote Procedure Call Protocol)
====================================

[](#rpc-remote-procedure-call-protocol)

基于esp，用于快速搭建RPC业务，自动进行身份认定。

注意：若客户端和服务端不是同一台服务器，则要保证两服务器时间相差不得大于5秒以上。

```
# 查询服务器当前时间
date '+%F %T.%9N'
date '+%F %T.%0N'

ssh root@127.0.0.1 "date '+%F %T.%3N'"
```

定义几个常量
======

[](#定义几个常量)

```
define('_RpcToken', '_RpcToken');
# Token，客户端服务端必须一致，不指定则就用默认值`_RpcToken`
# 若=`not_check`则不检查签名，在多服务器、且业务量比较大的时候，无法做到同时更新所有服务器，则可以采用此方式过渡；

define('_RpcPort', 44380);
# 端口，若不指定则默认44380，需要在nginx中绑定此端口

define('_RpcHost', '.esp');
# 在nginx中绑定的主机名根域，不指定则就用默认值`.esp`

define('_RpcKey', 'myApp');
# 客户端的识别码，建议在每个主机中单独定义，在服务端用`getenv('HTTP_KEY')`读取
# 此值不指定则用`_UNIQUE_KEY`

```

Nginx：
======

[](#nginx)

```
server    {
    listen 44380;
    server_name account.esp;
    index index.php;
    root /home/account/public/rpc;
    include /home/nginx/conf/php.conf;
    access_log off;
}

```

控制器
===

[](#控制器)

在所有业务端创建根控制器：注意必须引自`use laocc\rpc\Controller;`

```
