跳转至

GFWebSocketNetworkBackend

API Reference / Network / 类索引

  • 路径:addons/gf/extensions/network/backends/gf_websocket_network_backend.gd
  • 模块:Network
  • 继承:GFNetworkBackend
  • API:public
  • 类别:运行时句柄 (runtime_handle)
  • 首次版本:3.17.0

基于 Godot WebSocketPeer 的网络后端。 只实现 GFNetworkBackend 的 bytes 传输边界,适合浏览器、原生客户端或工具链 之间复用同一套 GFNetworkMessage 序列化流程。

成员概览

类型 名称 签名
枚举 Mode enum Mode
常量 BROADCAST_PEER_ID const BROADCAST_PEER_ID: int = -1
常量 SERVER_PEER_ID const SERVER_PEER_ID: int = 1
属性 max_accepts_per_poll var max_accepts_per_poll: int = 16
属性 max_packets_per_peer_per_poll var max_packets_per_peer_per_poll: int = 64
方法 host func host(options: Dictionary = {}) -> Error:
方法 connect_to_endpoint func connect_to_endpoint(endpoint: String, options: Dictionary = {}) -> Error:
方法 disconnect_backend func disconnect_backend() -> void:
方法 send_bytes func send_bytes(peer_id: int, bytes: PackedByteArray, _options: Dictionary = {}) -> Error:
方法 poll func poll(_delta: float) -> void:
方法 get_debug_snapshot func get_debug_snapshot() -> Dictionary:

枚举

Mode

  • API:public
enum Mode { ## 未连接。 DISCONNECTED, ## 作为服务器监听 TCP 并接受 WebSocket 握手。 SERVER, ## 作为客户端连接远端 WebSocket 地址。 CLIENT, }

WebSocket 后端运行模式。

常量

BROADCAST_PEER_ID

  • API:public
const BROADCAST_PEER_ID: int = -1

广播 peer 标识。

SERVER_PEER_ID

  • API:public
const SERVER_PEER_ID: int = 1

客户端视角下远端服务器的 peer 标识。

属性

max_accepts_per_poll

  • API:public
var max_accepts_per_poll: int = 16

每次 poll 最多接受的 TCP 连接数量。小于等于 0 表示不限制。

max_packets_per_peer_per_poll

  • API:public
var max_packets_per_peer_per_poll: int = 64

每个 peer 每次 poll 最多派发的入站包数量。小于等于 0 表示不限制。

方法

host

  • API:public
func host(options: Dictionary = {}) -> Error:

启动 WebSocket 主机。 支持 options: port, bind_address, supported_protocols。

参数:

名称 说明
options 操作选项字典。

返回:Godot 错误码。

结构:

  • options: Dictionary,支持 port、bind_address、address、supported_protocols、inbound_buffer_size、outbound_buffer_size、max_queued_packets、no_delay。

connect_to_endpoint

  • API:public
func connect_to_endpoint(endpoint: String, options: Dictionary = {}) -> Error:

连接 WebSocket 远端。 endpoint 应为 ws:// 或 wss:// URL。

参数:

名称 说明
endpoint WebSocket 地址。
options 操作选项字典,支持 tls_options、supported_protocols。

返回:Godot 错误码。

结构:

  • options: Dictionary,支持 tls_options、supported_protocols、inbound_buffer_size、outbound_buffer_size、max_queued_packets、no_delay。

disconnect_backend

  • API:public
func disconnect_backend() -> void:

断开 WebSocket 连接。

send_bytes

  • API:public
func send_bytes(peer_id: int, bytes: PackedByteArray, _options: Dictionary = {}) -> Error:

发送 bytes。

参数:

名称 说明
peer_id 目标 peer;服务器模式下 -1 表示广播,客户端模式下可传 1 或 -1。
bytes 要发送的字节数据。
_options 操作选项字典。

返回:Godot 错误码。

结构:

  • _options: Dictionary,保留给后端自定义发送选项。

poll

  • API:public
func poll(_delta: float) -> void:

轮询 WebSocket 连接、握手和收包。

参数:

名称 说明
_delta 本帧时间增量(秒),默认实现不直接使用。

get_debug_snapshot

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

获取后端调试快照。

返回:调试信息字典。

结构:

  • return: Dictionary,包含 backend、available、mode、mode_name、endpoint、peer_count、open_peer_count、client_state、max_accepts_per_poll、max_packets_per_peer_per_poll。