ekstazi / websocket-common
基于amphp的流接口,用于客户端和服务器端WebSocket实现
2.1.1
2020-04-09 15:36 UTC
Requires
- php: >=7.2
- amphp/byte-stream: ^1.7
Requires (Dev)
- amphp/php-cs-fixer-config: dev-master
- amphp/phpunit-util: ^1.1
- phpunit/phpunit: ^8 || ^7
This package is auto-updated.
Last update: 2024-09-10 01:07:37 UTC
README
客户端和服务器端WebSocket实现的基流接口
安装
此包可以作为Composer依赖项安装。
composer require ekstazi/websocket-common
要求
PHP 7.2+
接口
提供三个接口
interface Reader extends InputStream
方法
read(): Promise<string>
从流中读取数据。当有新数据可用时返回解析为字符串的Promise,如果流已关闭则返回null。
interface Writer extends OutputStream
常量
const MODE_BINARY = "binary"
以二进制帧发送数据。此模式是默认模式。
const MODE_TEXT = 'text'
以utf-8文本帧发送数据。
方法
public function setDefaultMode(string $mode): void
设置默认模式以写入帧。
public function getDefaultMode(): string
获取当前默认写入模式。
public function write(string $data, string $mode = null): Promise<int>
以指定的写入模式写入数据。默认使用Writer::getMode()
的值。返回解析为写入的字节数的Promise。
public function end(string $finalData = "", string $mode = null): Promise
将流标记为不再可写。可选地在此之前写入一个最终数据块。请注意,这与强制关闭流不同。此方法在关闭流之前等待所有挂起的写入完成。实现此接口的套接字流应仅关闭流的可写端。