跳转至

GFNetworkContractMessage

API Reference / Network / 类索引

  • 路径:addons/gf/extensions/network/contracts/gf_network_contract_message.gd
  • 模块:Network
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:3.17.0

网络契约中的单个消息定义。 消息定义描述 message_type、默认通道和 payload 字段集合,可用于构造、 校验和生成强类型辅助函数。

成员概览

类型 名称 签名
属性 message_type var message_type: StringName = &""
属性 display_name var display_name: String = ""
属性 channel_id var channel_id: StringName = &""
属性 fields var fields: Array[GFNetworkContractField] = []
属性 metadata var metadata: Dictionary = {}
方法 get_message_type func get_message_type() -> StringName:
方法 get_display_name func get_display_name() -> String:
方法 get_field func get_field(target_field_name: StringName) -> GFNetworkContractField:
方法 build_payload func build_payload(values: Dictionary = {}, options: Dictionary = {}) -> Dictionary:
方法 make_message func make_message(values: Dictionary = {}, options: Dictionary = {}) -> GFNetworkMessage:
方法 validate_definition func validate_definition() -> Dictionary:
方法 validate_payload func validate_payload(payload: Dictionary) -> Dictionary:
方法 validate_message func validate_message(message: GFNetworkMessage) -> Dictionary:
方法 describe func describe() -> Dictionary:

属性

message_type

  • API:public
var message_type: StringName = &""

消息类型标识。

display_name

  • API:public
var display_name: String = ""

编辑器展示名称。

channel_id

  • API:public
var channel_id: StringName = &""

默认逻辑通道。为空时发送时不强制通道。

fields

  • API:public
var fields: Array[GFNetworkContractField] = []

payload 字段定义。

结构:

  • fields: Array[GFNetworkContractField],按声明顺序保存 payload 字段定义。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。框架不解释该字段。

结构:

  • metadata: Dictionary,保存项目自定义消息元数据。

方法

get_message_type

  • API:public
func get_message_type() -> StringName:

获取消息类型。

返回:消息类型。

get_display_name

  • API:public
func get_display_name() -> String:

获取展示名称。

返回:展示名称。

get_field

  • API:public
func get_field(target_field_name: StringName) -> GFNetworkContractField:

查找字段定义。

参数:

名称 说明
target_field_name 字段名称。

返回:字段定义;不存在时返回 null。

build_payload

  • API:public
func build_payload(values: Dictionary = {}, options: Dictionary = {}) -> Dictionary:

构建 payload 字典。

参数:

名称 说明
values 字段值字典,可使用 StringName 或 String 作为键。
options 可选项,支持 include_defaults。

返回:payload 字典。

结构:

  • values: Dictionary[StringName|String, Variant],字段名到字段值的映射。
  • options: Dictionary,支持 include_defaults。
  • return: Dictionary[StringName, Variant],按字段契约归一化后的 payload。

make_message

  • API:public
func make_message(values: Dictionary = {}, options: Dictionary = {}) -> GFNetworkMessage:

构建 GFNetworkMessage。

参数:

名称 说明
values 字段值字典。
options 可选元信息,支持 sequence、tick、sender_id、channel_id。

返回:网络消息。

结构:

  • values: Dictionary[StringName|String, Variant],字段名到字段值的映射。
  • options: Dictionary,支持 include_defaults、sequence、tick、sender_id、channel_id。

validate_definition

  • API:public
func validate_definition() -> Dictionary:

校验消息定义是否完整。

返回:校验报告字典。

结构:

  • return: Dictionary,GFValidationReportDictionary 格式,包含 ok、issues、issue_count 和 next_actions。

validate_payload

  • API:public
func validate_payload(payload: Dictionary) -> Dictionary:

校验 payload 是否符合字段契约。

参数:

名称 说明
payload payload 字典。

返回:校验报告字典。

结构:

  • payload: Dictionary[StringName|String, Variant],待校验 payload 字段值。
  • return: Dictionary,GFValidationReportDictionary 格式,包含 ok、issues、issue_count 和 next_actions。

validate_message

  • API:public
func validate_message(message: GFNetworkMessage) -> Dictionary:

校验 GFNetworkMessage 是否匹配该消息契约。

参数:

名称 说明
message 网络消息。

返回:校验报告字典。

结构:

  • return: Dictionary,GFValidationReportDictionary 格式,包含 ok、issues、issue_count 和 next_actions。

describe

  • API:public
func describe() -> Dictionary:

描述消息契约。

返回:描述字典。

结构:

  • return: Dictionary,包含 message_type、display_name、channel_id、field_count、fields、metadata。