{"id":37012687,"url":"https://github.com/synapse-rpc/siroen","last_synced_at":"2026-01-14T01:13:12.446Z","repository":{"id":57063864,"uuid":"91212027","full_name":"synapse-rpc/siroen","owner":"synapse-rpc","description":"赛莲(Type η“Siroen”) - 第二代水中战斗用人造天使。战斗和电算能力奇高，对人类感情的理解能力几乎是零，在被伤害后阴差阳错地就被身边的人灌输了「痛就是爱」。for PHP","archived":false,"fork":false,"pushed_at":"2018-03-15T00:27:19.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-11T21:57:52.722Z","etag":null,"topics":["php","rabbitmq","rpc","siroen","synapse"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/synapse-rpc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-14T01:15:27.000Z","updated_at":"2023-07-27T05:48:04.000Z","dependencies_parsed_at":"2022-08-24T07:50:17.789Z","dependency_job_id":null,"html_url":"https://github.com/synapse-rpc/siroen","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/synapse-rpc/siroen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapse-rpc%2Fsiroen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapse-rpc%2Fsiroen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapse-rpc%2Fsiroen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapse-rpc%2Fsiroen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/synapse-rpc","download_url":"https://codeload.github.com/synapse-rpc/siroen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synapse-rpc%2Fsiroen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28407658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T00:40:43.272Z","status":"ssl_error","status_checked_at":"2026-01-14T00:40:42.636Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","rabbitmq","rpc","siroen","synapse"],"created_at":"2026-01-14T01:13:11.845Z","updated_at":"2026-01-14T01:13:12.431Z","avatar_url":"https://github.com/synapse-rpc.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 西纳普斯 - synapse (PHP Version)\n\n### 此为系统核心交互组件,包含了事件和RPC系统\n\n### 特别说明\n1. 不太推荐本语言使用此系统,因为只能运行在单线程.\n2. 目前客户端和服务端不能共存,启用服务端后会自动禁用客户端\n3. 并未进行大并发测试\n\n#### 包地址\n\u003e https://packagist.org/packages/synapse-rpc/siroen\n\n#### Demo测试地址\n\u003e https://github.com/synapse-rpc/siroen-test\n\n#### 可以使用Nuget安装\n\u003e composer require synapse-rpc/siroen\n\n#### 使用前奏:\n1. 需要一个RabbitMQ服务器\n\n#### 使用方式:\n```PHP\n    use Synapse\\Synapse;\n    \n    $ec = function ($msg, $raw) {\n        printf(\"收到信息: %s\\n\", $raw-\u003ebody);\n        return true;\n    };\n    $events = [\n        'dotNet.test' =\u003e $ec,\n        'golang.test' =\u003e $ec,\n        'python.test' =\u003e $ec\n    ];\n    \n    $rpcs = [\n        'test' =\u003e function ($msg, $raw) {\n            printf(\"收到RPC: %s\\n\", $raw-\u003ebody);\n            return [\n                'from' =\u003e 'php',\n                'm' =\u003e $msg['msg'],\n                'number' =\u003e 5233\n            ];\n        }\n    ];\n    \n    $app = new Synapse();\n    $app-\u003esys_name = 'simcu';\n    $app-\u003eapp_name = 'php';\n    $app-\u003emq_host = 'xxx';\n    $app-\u003emq_user = 'xxx';\n    $app-\u003emq_pass = 'xxx';\n    $app-\u003edebug = true;\n    $app-\u003erpc_callback = $rpcs;\n    $app-\u003eevent_callback = $events;\n    //$app-\u003edisable_rpc_client = true;\n    //$app-\u003edisable_event_client = true;\n    $app-\u003eserve();\n```\n\n#### CallBack说明:\n```PHP\n/**\n * 事件回调\n * @param array $msg 收到的信息数组\n * @param object $raw libamqp原始信息\n * @return bool 回复true表示确认信息,false将会将消息送回队列\n */\nfunction eventCallback($msg, $raw)\n{\n    return true;\n}\n\n/**\n * RPC回调\n * @param array $msg 收到的信息数组\n * @param object $raw libamqp原始信息\n * @return array 必须是键值对数组,将会序列为json\n */\nfunction rpcCallback($msg, $raw)\n{\n    return [];\n}\n```\n\n#### 客户端方法说明:\n1. 发送事件(无返回)\n\u003e Synapse.sendEvent($eventName, $param)\n\n2. RPC请求(返回数组)\n\u003e Synapse.SendRpc($app, $method, $param)\n\n3. 控制台日志\n\u003e Synapse::log(string desc,type = Synapse::LogInfo)\n\n日志级别: LogWarn,LogError,LogInfo,LogDebug\n\n#### 参数说明:\n\n```\npublic $mq_host;                            //MQ主机\npublic $mq_port = 5672;                     //MQ端口\npublic $mq_vhost = '/';                     //MQ虚拟机名称,默认为/\npublic $mq_user;                            //MQ用户\npublic $mq_pass;                            //MQ密码\npublic $sys_name;                           //系统名称(都处于同一个系统下才能通讯)\npublic $app_name;                           //应用名(当前应用的名字,不能于其他应用重复)\npublic $app_id;                             //应用ID(支持分布式,不输入会每次启动自动随机生成)\npublic $rpc_timeout = 3;                    //RPC请求超时时间(只针对客户端有效)\npublic $event_process_num = 20;             //事件服务并发量\npublic $rpc_process_num = 20;               //RPC服务并发量\npublic $disable_event_client = false;       //禁用事件客户端\npublic $disable_rpc_client = false;         //禁用RPC客户端\npublic $debug = false;                      //调试\npublic $rpc_callback;                       //RPC处理函数数组\npublic $event_callback;                     //事件处理函数数组\npublic $timezone = 'PRC';                   //系统时区\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynapse-rpc%2Fsiroen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynapse-rpc%2Fsiroen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynapse-rpc%2Fsiroen/lists"}