remessage / message
Re: Message 网络消息标准
Requires
- php: >=8.2
- ext-mbstring: *
- doctrine/collections: ^1.6 || ^2.0
- symfony/deprecation-contracts: ^3.2
- symfony/polyfill-php83: ^1.28
- symfony/serializer: ^6.2 || ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- phpunit/phpunit: ^10.1.2
- remessage/ruleset: ^1.2.3
README
此包定义了 Re: Message 部分客户端和服务器之间通信的规则和格式。
基于 JSON 格式,并创建用于实现 JSON-pure API。此包使用 symfony/serializer 进行 JSON 编码和解码。
基于此标准的 remessage/client 和 remessage/core。
要求
PHP 8.2+ 以及以下扩展
- json
- mbstring
安装
您需要 Composer 来安装
composer require remessage/message
描述
消息是作为服务器-客户端交互的一部分发送的数据。任何消息 必须 有一个表示消息类型的 type 属性(见 类型)。
传输
作为数据传输通道,可以使用 HTTP 或套接字。有关详细信息,请参阅 核心文档。
在使用 HTTP 协议时,只能使用操作、响应和错误消息。
类型
通信中有几种类型的消息。主要类型包括:操作、响应和错误。这些类型的消息可以通过任何传输方式发送和接收。
操作
操作消息是一种请求执行某些操作并返回结果的请求。操作只能从客户端发送。
任何操作消息 必须 有一个 name 和 parameters 属性。 name 属性包含操作的名称(例如 auth.sendCode)。parameters 属性是操作参数的列表。
此外,操作消息还可以有这些可选属性
示例
{
"type": "action",
"name": "auth.sendCode",
"parameters": {
"phone": "+79123456789",
"requestId": "d0f2f571-d07d-4e1d-bdf6-e3470efe9ac5",
"code": "012345"
}
}
响应
响应消息是在操作成功完成时返回的消息。此类型的消息 必须 有一个包含操作结果的 content 属性。响应只能由核心发送。
此外,响应消息还可以有这些可选属性
id属性:如果发送了标识符,则来自操作消息的标识符
示例
{
"type": "response",
"content": {
"method": "sms",
"requestId": "b4b12d26-8fd6-4d9f-aa2c-0e56ced951be",
"expiredAt": 1587075673
}
}
错误
错误消息是在执行操作时发生错误时返回的消息。错误消息 必须 有一个 code 和 message 属性。 code 属性是错误编号。 message 属性是关于错误的简短描述。可能抛出的错误完整列表可在 此处 查看。错误只能由核心发送。
示例
{
"type": "error",
"code": 51,
"message": "One of the passed parameters is invalid."
}