PHPackages                             synapse-rpc/siroen - 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. [Queues &amp; Workers](/categories/queues)
4. /
5. synapse-rpc/siroen

ActiveLibrary[Queues &amp; Workers](/categories/queues)

synapse-rpc/siroen
==================

A rpc framework base RabbitMQ (已实现C#,python,Golang)

1.4.3(8y ago)015BSD-4-ClausePHP

Since Mar 15Pushed 8y agoCompare

[ Source](https://github.com/synapse-rpc/siroen)[ Packagist](https://packagist.org/packages/synapse-rpc/siroen)[ RSS](/packages/synapse-rpc-siroen/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

西纳普斯 - synapse (PHP Version)
----------------------------

[](#西纳普斯---synapse-php-version)

### 此为系统核心交互组件,包含了事件和RPC系统

[](#此为系统核心交互组件包含了事件和rpc系统)

### 特别说明

[](#特别说明)

1. 不太推荐本语言使用此系统,因为只能运行在单线程.
2. 目前客户端和服务端不能共存,启用服务端后会自动禁用客户端
3. 并未进行大并发测试

#### 包地址

[](#包地址)

>

#### Demo测试地址

[](#demo测试地址)

>

#### 可以使用Nuget安装

[](#可以使用nuget安装)

> composer require synapse-rpc/siroen

#### 使用前奏:

[](#使用前奏)

1. 需要一个RabbitMQ服务器

#### 使用方式:

[](#使用方式)

```
    use Synapse\Synapse;

    $ec = function ($msg, $raw) {
        printf("收到信息: %s\n", $raw->body);
        return true;
    };
    $events = [
        'dotNet.test' => $ec,
        'golang.test' => $ec,
        'python.test' => $ec
    ];

    $rpcs = [
        'test' => function ($msg, $raw) {
            printf("收到RPC: %s\n", $raw->body);
            return [
                'from' => 'php',
                'm' => $msg['msg'],
                'number' => 5233
            ];
        }
    ];

    $app = new Synapse();
    $app->sys_name = 'simcu';
    $app->app_name = 'php';
    $app->mq_host = 'xxx';
    $app->mq_user = 'xxx';
    $app->mq_pass = 'xxx';
    $app->debug = true;
    $app->rpc_callback = $rpcs;
    $app->event_callback = $events;
    //$app->disable_rpc_client = true;
    //$app->disable_event_client = true;
    $app->serve();
```

#### CallBack说明:

[](#callback说明)

```
/**
 * 事件回调
 * @param array $msg 收到的信息数组
 * @param object $raw libamqp原始信息
 * @return bool 回复true表示确认信息,false将会将消息送回队列
 */
function eventCallback($msg, $raw)
{
    return true;
}

/**
 * RPC回调
 * @param array $msg 收到的信息数组
 * @param object $raw libamqp原始信息
 * @return array 必须是键值对数组,将会序列为json
 */
function rpcCallback($msg, $raw)
{
    return [];
}
```

#### 客户端方法说明:

[](#客户端方法说明)

1. 发送事件(无返回)

> Synapse.sendEvent($eventName, $param)

2. RPC请求(返回数组)

> Synapse.SendRpc($app, $method, $param)

3. 控制台日志

> Synapse::log(string desc,type = Synapse::LogInfo)

日志级别: LogWarn,LogError,LogInfo,LogDebug

#### 参数说明:

[](#参数说明)

```
public $mq_host;                            //MQ主机
public $mq_port = 5672;                     //MQ端口
public $mq_vhost = '/';                     //MQ虚拟机名称,默认为/
public $mq_user;                            //MQ用户
public $mq_pass;                            //MQ密码
public $sys_name;                           //系统名称(都处于同一个系统下才能通讯)
public $app_name;                           //应用名(当前应用的名字,不能于其他应用重复)
public $app_id;                             //应用ID(支持分布式,不输入会每次启动自动随机生成)
public $rpc_timeout = 3;                    //RPC请求超时时间(只针对客户端有效)
public $event_process_num = 20;             //事件服务并发量
public $rpc_process_num = 20;               //RPC服务并发量
public $disable_event_client = false;       //禁用事件客户端
public $disable_rpc_client = false;         //禁用RPC客户端
public $debug = false;                      //调试
public $rpc_callback;                       //RPC处理函数数组
public $event_callback;                     //事件处理函数数组
public $timezone = 'PRC';                   //系统时区

```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3029d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11401602?v=4)[xRain](/maintainers/xrain0610)[@xrain0610](https://github.com/xrain0610)

---

Top Contributors

[![xrain0610](https://avatars.githubusercontent.com/u/11401602?v=4)](https://github.com/xrain0610 "xrain0610 (11 commits)")

---

Tags

phprabbitmqrpcsiroensynapse

### Embed Badge

![Health badge](/badges/synapse-rpc-siroen/health.svg)

```
[![Health](https://phpackages.com/badges/synapse-rpc-siroen/health.svg)](https://phpackages.com/packages/synapse-rpc-siroen)
```

###  Alternatives

[vladimir-yuldashev/laravel-queue-rabbitmq

RabbitMQ driver for Laravel Queue. Supports Laravel Horizon.

2.1k10.3M32](/packages/vladimir-yuldashev-laravel-queue-rabbitmq)[bschmitt/laravel-amqp

AMQP wrapper for Laravel and Lumen to publish and consume messages

2792.4M7](/packages/bschmitt-laravel-amqp)[jwage/phpamqplib-messenger

Symfony messenger transport for the php-amqplib/php-amqplib library.

87201.9k1](/packages/jwage-phpamqplib-messenger)[hyperf/amqp

A amqplib for hyperf.

231.2M66](/packages/hyperf-amqp)[convenia/pigeon

3334.2k](/packages/convenia-pigeon)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
