NetworkedMultiplayerPeer

Inherits: PacketPeer < Reference < Object

Inherited By: MultiplayerPeerGDNative, NetworkedMultiplayerENet, WebRTCMultiplayer, WebSocketMultiplayerPeer

高级网络接口,简化多人互动。

描述

管理与网络对等体的连接。为连接到服务器的每个客户端分配唯一的 ID。另请参见 MultiplayerAPI

注意:高级别多人游戏的 API 协议属于实现细节,没有准备被非 Godot 服务器使用。改变时恕不另行通知。

教程

属性

bool

refuse_new_connections

true

TransferMode

transfer_mode

0

方法

ConnectionStatus

get_connection_status ( ) const

int

get_packet_peer ( ) const

int

get_unique_id ( ) const

void

poll ( )

void

set_target_peer ( int id )

信号

  • connection_failed ( )

当连接尝试失败时触发该信号。


  • connection_succeeded ( )

当连接尝试成功时触发。


  • peer_connected ( int id )

当客户端连接时由服务器触发该信号。


  • peer_disconnected ( int id )

当客户端断开连接时由服务器触发。


  • server_disconnected ( )

当服务器断开连接时由客户端触发。

枚举

enum TransferMode:

  • TRANSFER_MODE_UNRELIABLE = 0 —- 数据包不被确认,对丢失的数据包不进行重发尝试。数据包可以以任何顺序到达。可能比TRANSFER_MODE_UNRELIABLE_ORDERED快。用于非关键数据,并注意考虑顺序是否重要。

  • TRANSFER_MODE_UNRELIABLE_ORDERED = 1 —- 数据包不被确认,对丢失的数据包不进行重发尝试。数据包按其发送顺序接收。有可能比TRANSFER_MODE_RELIABLE快。用于非关键数据或由于重发尝试而迟迟不能收到的数据,例如运动和位置数据。

  • TRANSFER_MODE_RELIABLE = 2 —- 数据包必须被接收,并应进行重发尝试,直到数据包被确认。数据包必须按照其发送的顺序接收。最可靠的传输模式,但由于开销很大,可能是最慢的。用于必须按顺序传输和到达的关键数据,例如,正在触发的能力或聊天信息。仔细考虑信息是否真的是关键的,并尽量少用。


enum ConnectionStatus:

  • CONNECTION_DISCONNECTED = 0 —- 正在进行的连接断开了。

  • CONNECTION_CONNECTING = 1 —- 一个连接尝试正在进行中。

  • CONNECTION_CONNECTED = 2 —- 连接尝试已经成功。

常量

  • TARGET_PEER_BROADCAST = 0 —- 数据包被发送到服务器,然后被重新分配到其他对等体。

  • TARGET_PEER_SERVER = 1 —- 数据包被单独发送到服务器。

属性说明

  • bool refuse_new_connections

Default

true

Setter

set_refuse_new_connections(value)

Getter

is_refusing_new_connections()

true 时,这个 NetworkedMultiplayerPeer 拒绝新的连接。


Default

0

Setter

set_transfer_mode(value)

Getter

get_transfer_mode()

target_peer发送数据包的方式。参阅TransferMode

方法说明

返回连接的当前状态。请参阅 ConnectionStatus


  • int get_packet_peer ( ) const

返回最近发送数据包的 NetworkedMultiplayerPeer 的 ID。


  • int get_unique_id ( ) const

返回这个 NetworkedMultiplayerPeer 的 ID。


  • void poll ( )

等待最多 1 秒以接收一个新的网络事件。


  • void set_target_peer ( int id )

设置数据包将被发送至的对等体。

id可以是其中之一。TARGET_PEER_BROADCAST 发送给所有连接的对等体,TARGET_PEER_SERVER 发送给作为服务器的对等体,输入一个有效的对等体ID将发送给该特定对等体,输入负的ID将发送给所有其余对等体。默认情况下,目标对等体是TARGET_PEER_BROADCAST