imedge / protocol-netstring
为 AMPHP 实现的异步 NetString
v0.4.0
2024-07-10 17:48 UTC
Requires
- php: >=8.1
- ext-ctype: *
- amphp/byte-stream: ^2.0
Requires (Dev)
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^10.3
- squizlabs/php_codesniffer: ^3.7
- symplify/easy-coding-standard: ^12.0.8
README
此库实现了 NetString 协议,并为 AMPHP 提供了 NetStringReader、NetStringWriter 和双向 NetStringConnection 实现。
安装
此软件包可以作为 Composer 依赖项在 PHP 8.1 及更高版本上安装。
composer require imedge/protocol-netstring
用法
NetStringReader
示例代码
<?php use Amp\ByteStream\ReadableBuffer; use IMEdge\Protocol\NetString\NetStringReader; $netString = new NetStringReader(new ReadableBuffer('5:Hello,6:world!,')); foreach ($netString->packets() as $packet) { var_dump($packet); }
输出
string(5) "Hello"
string(6) "world!"
NetStringWriter
示例代码
<?php use Amp\ByteStream\WritableBuffer; use IMEdge\Protocol\NetString\NetStringWriter; $netString = new NetStringWriter($out = new WritableBuffer()); $netString->write('Hello'); $netString->write(' '); $netString->write('World!'); $netString->close(); var_dump($out->buffer());
输出
string(21) "5:Hello,1: ,6:World!,"
NetStringConnection
NetStringConnection 允许双向 NetString 通信。
示例代码
<?php use Amp\ByteStream\ReadableBuffer; use Amp\ByteStream\WritableBuffer; use IMEdge\Protocol\NetString\NetStringConnection; $netString = new NetStringConnection(new ReadableBuffer('5:Hello,6:world!,'), $out = new WritableBuffer()); $netString->write('Hi!'); foreach ($netString->packets() as $packet) { var_dump($packet); } $out->close(); var_dump($out->buffer());
输出
string(5) "Hello"
string(6) "world!"
string(6) "3:Hi!"