dazzle-php/socket

Dazzle 异步 Socket。

v0.5.0-beta 2017-07-23 20:19 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:34:23 UTC


README

Build Status Code Coverage Code Quality Latest Stable Version Latest Unstable Version License

注意: 本存储库是 Dazzle 项目 的一部分 - PHP 的下一代库。该项目的目的是为 PHP 开发者提供一套完整的工具,用于构建功能性的异步应用程序。请务必仔细阅读附带的 README,这将保证您会对它的易用性和强大功能感到惊讶。同时,您可能还想查看我们 Dazzle 仓库 中其他异步库的其余部分,以获得完整的 Dazzle 体验。


描述

Dazzle Socket 是一个组件,它为 PHP 实现了异步 TCP、UDP 和 Unix Socket 处理。该库还提供了通过外部服务实现进程间通信的接口。

特性亮点

Dazzle Socket 特性

  • 异步处理入站和出站消息
  • 支持 TCP、UDP 和 Unix Socket
  • ...等等。

提供示例

快速入门

服务器文件,接受格式为 $min-$max 的范围并返回随机数。

$loop = new Loop(new SelectLoop);
$server = new SocketListener('tcp://127.0.0.1:2080', $loop);

$server->on('connect', function($server, SocketInterface $client) {
    $client->write("Hello!\n");
    $client->write("Welcome to Dazzle server!\n");
    $client->write("Tell me a range and I will randomize a number for you!\n\n");

    $client->on('data', function(SocketInterface $client, $data) use(&$buffer) {
        $client->write("Your number is: " . rand(...explode('-', $data)));
    });
});

$loop->onStart(function() use($server) {
    $server->start();
});
$loop->start();

客户端文件,将 $min-$max 格式发送到上述服务器并获取响应。

$loop = new Loop(new SelectLoop);
$socket = new Socket('tcp://127.0.0.1:2080', $loop);

$socket->on('data', function($socket, $data) {
    printf("%s", $data);
});
$socket->write('1-100');

$loop->start();

附加

更多示例可以在 example 目录 中找到。以下列出的是提供的示例列表,作为参考和首选的阅读顺序

如果上述示例中有任何让您感到困惑的,请查看 tests 目录

要求

Dazzle Socket 需要

  • PHP-5.6 或 PHP-7.0+,
  • UNIX 或 Windows 操作系统。

安装

要安装此库,请确保已安装 composer,然后运行以下命令

$> composer require dazzle-php/socket

测试

测试可以通过以下方式运行

$> vendor/bin/phpunit -d memory_limit=1024M

版本控制

Dazzle 库的版本控制正在共享于 Dazzle 项目 中包含的所有包。这意味着它们会同时发布。一方面,这可能会在某些时候导致某些包的“空”发布,但请不要担心。最终,这对于贡献者来说要容易得多,而且对于用户来说,理解包的兼容性和互操作性也要直接得多。

贡献

感谢您考虑为这个存储库做出贡献!

许可证

炫光套件是开源软件,遵循MIT许可证

"一切皆有可能。不可能的只是需要更长的时间。" —— 丹·布朗