remessage/message

Re: Message 网络消息标准

v3.3.0 2023-12-10 21:24 UTC

README

此包定义了 Re: Message 部分客户端和服务器之间通信的规则和格式。

基于 JSON 格式,并创建用于实现 JSON-pure API。此包使用 symfony/serializer 进行 JSON 编码和解码。

基于此标准的 remessage/clientremessage/core

要求

PHP 8.2+ 以及以下扩展

  1. json
  2. mbstring

安装

您需要 Composer 来安装

composer require remessage/message

描述

消息是作为服务器-客户端交互的一部分发送的数据。任何消息 必须 有一个表示消息类型的 type 属性(见 类型)。

传输

作为数据传输通道,可以使用 HTTP 或套接字。有关详细信息,请参阅 核心文档

在使用 HTTP 协议时,只能使用操作、响应和错误消息。

类型

通信中有几种类型的消息。主要类型包括:操作、响应和错误。这些类型的消息可以通过任何传输方式发送和接收。

操作

操作消息是一种请求执行某些操作并返回结果的请求。操作只能从客户端发送。

任何操作消息 必须 有一个 nameparameters 属性。 name 属性包含操作的名称(例如 auth.sendCode)。parameters 属性是操作参数的列表。

此外,操作消息还可以有这些可选属性

  • id 属性:操作消息的唯一标识符,如果发送了标识符,则必须在 响应 消息中返回
  • token 属性:此操作的访问令牌(您可以通过 其他方式 传递令牌)

示例

{
    "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
    }
}

错误

错误消息是在执行操作时发生错误时返回的消息。错误消息 必须 有一个 codemessage 属性。 code 属性是错误编号。 message 属性是关于错误的简短描述。可能抛出的错误完整列表可在 此处 查看。错误只能由核心发送。

示例

{
    "type": "error",
    "code": 51,
    "message": "One of the passed parameters is invalid."
}