ekstazi/websocket-common

基于amphp的流接口,用于客户端和服务器端WebSocket实现

2.1.1 2020-04-09 15:36 UTC

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

将流标记为不再可写。可选地在此之前写入一个最终数据块。请注意,这与强制关闭流不同。此方法在关闭流之前等待所有挂起的写入完成。实现此接口的套接字流应仅关闭流的可写端。

interface Connection extends Reader, Writer