wyrihaximus/react-opportunistic-tls

dev-main 2024-03-01 12:26 UTC

This package is auto-updated.

Last update: 2024-09-10 22:21:29 UTC


README

Continuous Integration Latest Stable Version Total Downloads Code Coverage License

安装

要通过Composer安装,请使用以下命令,它将自动检测最新版本并将其绑定到^

composer require wyrihaximus/react-opportunistic-tls

用法

由于此包是从此PR提取的,因此API与那里提出的API相同。一旦合并PR,任何使用此包的包的更改只需要两行。我们,ReactPHP核心团队,决定在合并PR之前在一个包中测试它。主要原因是我们确保处理大多数意外问题,因为这是一个棘手的问题。

客户端

$connector = new React\Socket\Connector();
$connector->connect('opportunistic+tls://example.com:5432/')->then(function (React\Socket\OpportunisticTlsConnectionInterface $startTlsConnection) {
    $connection->write('let\'s encrypt?');

    return React\Promise\Stream\first($connection)->then(function ($data) use ($connection) {
        if ($data === 'yes') {
            return $connection->enableEncryption();
        }

        return $stream;
    });
})->then(function (React\Socket\ConnectionInterface $connection) {
    $connection->write('Hello!');
});

服务器

$socket = new React\Socket\SocketServer('opportunistic+tls://127.0.0.1:8000', array(
    'tls' => array(
        'local_cert' => 'server.pem',
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_SERVER
    )
));
$server->on('connection', static function (OpportunisticTlsConnectionInterface $connection) use ($server) {
    return $connection->enableEncryption();
});

许可协议

MIT许可协议(MIT)

版权所有 (c) 2023 Cees-Jan Kiewiet

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

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

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