跳到主要内容

NetworkedMultiplayerPeer

继承

PacketPeer

简要描述

高级网络接口,可简化多人游戏的互动。

描述

管理与网络对等方的连接。为连接到服务器的每个客户机分配唯一的id。

成员

类型属性名默认值
boolrefuse_new_connectionstrue
inttransfer_mode0

方法

返回值类型方法名称
intget_connection_status() const
intget_packet_peer() const
intget_unique_id() const
voidpoll()
voidset_target_peer(id: int)

信号

  • **connection_failed**

连接尝试失败时发出。


  • **connection_succeeded**

连接尝试成功时发出。


  • **peer_connected**

客户端连接时由服务器发出。


  • **peer_disconnected**

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


  • **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
Defaulttrue
setterset_refuse_new_connections(value)
getteris_refusing_new_connections
  • int transfer_mode
Default0
setterset_transfer_mode(value)
getterget_transfer_mode

方法说明

  • get_connection_status get_connection_status() const

返回连接的当前状态。


  • get_packet_peer get_packet_peer() const

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


  • get_unique_id get_unique_id() const

返回此NetworkedMultiplayerPeer的ID。


  • poll poll()

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


  • set_target_peer set_target_peer(id: int)

设置要将数据包发送到的对等方。

id可以是以下之一:TARGET_PEER_BROADCAST发送给所有连接的对等方,TARGET_PEER_SERVER发送给充当服务器的对等方,要发送给该特定对等方的有效对等方ID,