wyrihaximus/react-child-process-messenger

react/child-process 的消息传递装饰器

4.0.3 2022-03-12 12:34 UTC

README

Continuous Integration Latest Stable Version Total Downloads Code Coverage License

react/child-process 的基础上,提供普通消息和 RPC 风格的包装器。若需要消息池,请查看 wyrihaximus/react-child-process-pool

安装

要使用 Composer 安装,请使用以下命令,它将自动检测最新版本并将其与 ~ 绑定。

composer require wyrihaximus/react-child-process-messenger 

简化示例

虽然此包支持多种设置父子进程之间通信的方法,但最简单的方法是创建一个实现 WyriHaximus\React\ChildProcess\Messenger\ChildInterface 的类。在调用 create 之后,将设置并创建处理支持的 RPC 和消息的所有内容。

<?php

use React\EventLoop\LoopInterface;
use WyriHaximus\React\ChildProcess\Messenger\ChildInterface;
use WyriHaximus\React\ChildProcess\Messenger\Messages\Payload;

use function React\Promise\resolve;

final class ExampleChild implements ChildInterface
{
    public static function create(Messenger $messenger, LoopInterface $loop)
    {
        $messenger->registerRpc('example', function (Payload $payload) {
            return resolve($payload->getPayload());
        });
    }
}

在父进程中,您只需要调用以运行该类的子进程

MessengerFactory::parentFromClass('ExampleChild', $loop)->then(static function (Messenger $messenger): void {
    $messenger->rpc(/* etc etc */);
});

更多示例

有关消息和 RPC 示例,请参阅 examples 目录

贡献

有关详细信息,请参阅 CONTRIBUTING

许可协议

版权所有 2021 Cees-Jan Kiewiet

在此特此免费授予任何获得本软件及其相关文档文件(“软件”)副本的任何人,以不受限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及准许向软件提供的人这样做,前提是以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定用途和版权侵权保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他方式而产生的,与软件或其使用或其他交易有关。