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 */);
});

更多示例

请参阅 examples 目录中的消息和 RPC 示例。

贡献

有关详细信息,请参阅 CONTRIBUTING

许可证

版权所有 2021 Cees-Jan Kiewiet

特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的提供者为此目的使用软件,受以下条件约束

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

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