dazzle-php / socket
Dazzle 异步 Socket。
Requires
- php: >=5.6.7
- dazzle-php/event: 0.5.*
- dazzle-php/loop: 0.5.*
- dazzle-php/stream: 0.5.*
- dazzle-php/throwable: 0.5.*
Requires (Dev)
- phpunit/phpunit: >=4.8.0 <5.4.0
This package is not auto-updated.
Last update: 2024-09-15 03:34:23 UTC
README
注意: 本存储库是 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 目录 中找到。以下列出的是提供的示例列表,作为参考和首选的阅读顺序
- 快速入门
- 使用 Socket 客户端
- 使用 Socket 服务器
- 创建 TCP IPv4 客户端-服务器连接
- 创建 TCP IPv6 客户端-服务器连接
- 创建 UNIX Socket 客户端-服务器连接
- 获取连接信息
- 使用安全的 SSL Socket 客户端
- 使用安全的 SSL Socket 服务器
- 创建安全的 SSL 客户端-服务器连接
如果上述示例中有任何让您感到困惑的,请查看 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 项目 中包含的所有包。这意味着它们会同时发布。一方面,这可能会在某些时候导致某些包的“空”发布,但请不要担心。最终,这对于贡献者来说要容易得多,而且对于用户来说,理解包的兼容性和互操作性也要直接得多。
贡献
感谢您考虑为这个存储库做出贡献!
- 贡献指南可以在 贡献提示 中找到。
- 开放问题可以在 问题部分 中找到。
- 当前贡献者名单在 图表部分 中列出
- 要联系作者,请查看 composer.json 文件中的信息。
许可证
炫光套件是开源软件,遵循MIT许可证。
"一切皆有可能。不可能的只是需要更长的时间。" —— 丹·布朗