WebRTCMultiplayerPeer

继承: MultiplayerPeer < PacketPeer < RefCounted < Object

简单的接口,用于创建由 WebRTCPeerConnection 组成的点对点网状网络,与 MultiplayerAPI 兼容。

描述

该课程构建了一个完整的网格 WebRTCPeerConnection (每个同伴的一个连接) 可以用作 MultiplayerAPI.multiplayer_peer.

你可以添加每个 WebRTCPeerConnection 通过 add_peer() 或通过 remove_peer()。 必须添加同伴 WebRTCPeerConnection.STATE_NEW 声明允许其创建适当的渠道。 此类不会创建报价或设置描述,它只会对其进行轮询,并通知连接和断开连接。 通过创建同伴时 create_client() 或者 create_server()MultiplayerPeer.is_server_relay_supported() 方法将返回``true''

注意: 导出到Android时,请确保启用 INTERNET 在导出项目或使用一键部署之前,在Android导出预设中获得许可。 否则,任何类型的网络通信将被Android阻止。

方法

Error

add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1)

Error

create_client(peer_id: int, channels_config: Array = [])

Error

create_mesh(peer_id: int, channels_config: Array = [])

Error

create_server(channels_config: Array = [])

Dictionary

get_peer(peer_id: int)

Dictionary

get_peers()

bool

has_peer(peer_id: int)

void

remove_peer(peer_id: int)


方法说明

Error add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) 🔗

在给定的网格中添加一个新的对等 peer_id. 这 WebRTCPeerConnection 必须处于状态 WebRTCPeerConnection.STATE_NEW.

将为可靠,不可靠和有序的运输创建三个渠道。 价值``unreliable_lifetime`` 将传递给 "maxPacketLifetime" 创建不可靠和有序频道时的选项 (see WebRTCPeerConnection.create_data_channel()).


Error create_client(peer_id: int, channels_config: Array = []) 🔗

初始化多人应用作为给定的客户 peer_id (必须在2至2147483647之间). 在此模式下,您只应该 add_peer() 一次和 peer_id1。 此模式启用 MultiplayerPeer.is_server_relay_supported(), 允许上层 MultiplayerAPI 执行对等交换和数据包中继的层。

你可以选择性地指定一个 channels_config 数组 TransferMode 这将用于创建额外的通道(WebRTC 只支持每个通道一种传输模式)。 .. rst-class:: classref-item-separator


Error create_mesh(peer_id: int, channels_config: Array = []) 🔗

将多人应用对等体初始化为网状(即所有对等体都互相连接),对等体 ID 为 peer_id(必须在 1 和 2147483647 之间)。


Error create_server(channels_config: Array = []) 🔗

初始化多用户对等体作为服务器(具有唯一的ID为“1”). 这种模式启用 MultiplayerPeer.is_server_relay_supported(), allowing the upper MultiplayerAPI layer to perform peer exchange and packet relaying.

你可以选择性地指定一个。 channels_config 数组 TransferMode 这将用于创建额外的通道(WebRTC 只支持每个通道一种传输模式)。


Dictionary get_peer(peer_id: int) 🔗

返回 ID 为 peer_id 的对等体的字典表示,其中包含三个字段。"connection" 包含与这个对等体的 WebRTCPeerConnection"channels" 是三个 WebRTCDataChannel 的数组,而 "connected" 则是代表对等体目前是否已连接的布尔值(三个通道均已开放)。


Dictionary get_peers() 🔗

返回一个字典,其键是对等体的 id,其值是对等体的表示,如 get_peer()


bool has_peer(peer_id: int) 🔗

如果给定的 peer_id 在对等体映射中,则返回 true(尽管它可能没有连接)。


void remove_peer(peer_id: int) 🔗

从 mesh 结构中移除具有给定 peer_id 的对等体。如果该对等体已连接,并且为它发出过 MultiplayerPeer.peer_connected,那么 MultiplayerPeer.peer_disconnected 也将被发出。